A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊迪 中级黑马   /  2013-6-10 18:24  /  1533 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张俊迪 于 2013-6-10 18:57 编辑

帮我解释一下yield是干什么,据我现在了解的答案是停止当前线程将执行权给同一级线程,等同一级线程全运行完之后在运行,它的作用就是释放执行权,是自己处于冻结状态,请大神们解释一下,一定要带程序,在网上搜出好几种答案,都没实现,因此一定要带代码

评分

参与人数 1技术分 +1 收起 理由
尹丽峰 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
static void yield()
          暂停当前正在执行的线程对象,并执行其他线程。
eg:
class Join implements Runnable
{
     public void run()
     {
          for(int x=0;x<60;x++)
               System.out.println(Thread.currentThread().toString()+"......."+x);
          Thread.yield();//释放当前正在执行的线程的执行权,稍微减缓线程执行的频率。
     }
}

class YieldDemo
{
     public static void main(String[] args)throws InterruptedException
     {
          Join j = new Join();
          Thread t1 = new Thread(j);
          Thread t2 = new Thread(j);
          t1.start();
          t2.start();
          for(int x=0;x<80;x++){}
     }
}


评分

参与人数 1技术分 +1 收起 理由
尹丽峰 + 1 赞一个!

查看全部评分

回复 使用道具 举报
是暂停线程
回复 使用道具 举报
李晓峰 发表于 2013-6-10 18:38
static void yield()
          暂停当前正在执行的线程对象,并执行其他线程。
eg:

谢谢了,好像知道了
回复 使用道具 举报

谢谢鼓励!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马