码迷,mamicode.com
首页 > 编程语言 > 详细

了解多线程中的yield

时间:2015-08-11 08:38:17      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

最近在学习多线程这一块,发现里面有好多让人产生误区的地方,今天我来分析下java多线程中的yield功能,希望其他朋友也可以从中学习到相关知识。

开始之前先看下面一幅图:

技术分享

这幅图表示线程的运行状态:新建---》就绪《--阻塞--》运行----》死亡

yield从字面上看是礼让的意思,顾名思义就是让其他线程有执行的机会。这里有个很大的误区,以为执行yield方法就能暂停当前线程让其他线程执行,这是错误的。

yield方法只是让当前执行的线程从“运行”状态转变为“就绪”状态,等待执行。此时谁抢占CPU资源谁就会执行,故当前方法也有可能继续执行,并不一定是停止

自己,让其他线程执行。

看网上其他文章说yield方法对于同一优先级的线程有效,我经过实验发现并不是这样,如果大家有不同意见欢迎讨论!

了解多线程中的yield

标签:

原文地址:http://my.oschina.net/lijinzhao/blog/490385

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!