多线程中国yeild()与sleep()的话区别?

解决方案 »

  1.   

    yeild 会主动释放CPU
    sleep 不会yield()
    1)    通过yield ()函数,可使线程进入可执行状态,排程器从可执行状态的线程中重新进行排程。所以调用了yield()的函数也有可能马上被执行。
    2)    当调用yield ()函数后,线程不会释放它的“锁标志”。sleep()
    1)    sleep ()函数有一个参数,通过参数可使线程在指定的时间内进入停滞状态,当指定的时间过后,线程则自动进入可执行状态。
    2)    当调用sleep ()函数后,线程不会释放它的“锁标志”。
      

  2.   

    还有人用yeild么?
    我从来作线程都是定义一个死循环
    循环结束,线程就死了
    while(running){
      try{
         //statement
         sleep(1000);     
      }
      catch(Exception ex){
        //.........
      }
    }