黑马程序员技术交流社区
标题:
毕向东的课程有误 线程yied不是指让出cpu让其它线程执行
[打印本页]
作者:
沙漠里的小鱼
时间:
2014-4-27 10:42
标题:
毕向东的课程有误 线程yied不是指让出cpu让其它线程执行
毕向东的课程有误 线程yied不是指让出cpu让其它线程执行 而是指让出CPU让所有的线程执行 也包括刚刚放弃执行权的那个线程
作者:
沙漠里的小鱼
时间:
2014-4-27 15:42
木有人回答吗
作者:
焚雨成灰
时间:
2014-4-27 16:17
这么说吧,当有多个线程同时在执行的时候,每个线程都有它分配的时间片
当这个时间片用完的时候,这个线程暂时不执行,换到下个线程执行,然后再给
它分配个时间片,再执行.....
yield()方法就是,当代码执行到yield()时,即使给这个线程分配的时间片没有
用完也不继续执行了,让给下个线程.让下个线程开始执行
参考:http://bbs.csdn.net/topics/270019000
作者:
蓝雨星空
时间:
2014-4-27 16:50
根据api的说明,yield()这个方法的意思是:暂停当前正在执行的线程对象,并执行其他线程。
也就是说,当线程执行到这句代码时,放弃一次cpu执行权。但是cpu切换的速度太快,说不定它刚放弃一次执行权,cpu切换到其他线程,马上又切换到这个线程了,所以效果跟没有放开过执行权差不多。
这个yield()方法的意思只是让线程放弃一次cpu的执行权,而不是一直放弃执行权。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2