永发信息网

java中join和yield有什么区别?

答案:2  悬赏:30  手机版
解决时间 2021-02-21 06:58
java中join和yield有什么区别?
最佳答案
yield:理论上,yield意味着放手,放弃,投降。一个调用yield()方法的线程告诉虚拟机它乐意让其他线程占用自己的位置。这表明该线程没有在做一些紧急的事情。注意,这仅是一个暗示,并不能保证不会产生任何影响。注意:它是一个静态的原生(native)方法;它告诉当前正在执行的线程把运行机会交给线程池中拥有相同优先级的线程; 它不能保证使得当前正在运行的线程迅速转换到可运行的状态;它仅能使一个线程从运行状态转到可运行状态,而不是等待或阻塞状态。 join:线程实例的方法join()方法可以使得一个线程在另一个线程结束后再执行。如果join()方法在一个线程实例上调用,当前运行着的线程将阻塞直到这个线程实例完成了执行。 package test;public class YieldExample { public static void main(String[] args) { Thread producer = new Producer(); Thread consumer = new Consumer(); producer.setPriority(Thread.MIN_PRIORITY); consumer.setPriority(Thread.MAX_PRIORITY); producer.start(); consumer.start(); }}class Producer extends Thread{ public void run() { for (int i = 0; i < 5; i++) { System.out.println("I am Producer : Produced Item " + i); Thread.yield(); } }} class Consumer extends Thread{ public void run() { for (int i = 0; i < 5; i++) { System.out.println("I am Consumer : Consumed Item " + i); Thread.yield(); } }}package test;public class JoinExample{ public static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Runnable() { public void run() { System.out.println("First task started"); System.out.println("Sleeping for 2 seconds"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("First task completed"); } }); Thread t1 = new Thread(new Runnable() { public void run() { System.out.println("Second task completed"); } }); t.start(); t.join(); t1.start(); }}
全部回答
yield:理论上,yield意味着放手,放弃,投降。一个调用yield()方法的线程告诉虚拟机它乐意让其他线程占用自己的位置。这表明该线程没有在做一些紧急的事情。注意,这仅是一个暗示,并不能保证不会产生任何影响。注意:它是一个静态的原生(native)方法;它告诉当前正在执行的线程把运行机会交给线程池中拥有相同优先级的线程; 它不能保证使得当前正在运行的线程迅速转换到可运行的状态;它仅能使一个线程从运行状态转到可运行状态,而不是等待或阻塞状态。 join:线程实例的方法join()方法可以使得一个线程在另一个线程结束后再执行。如果join()方法在一个线程实例上调用,当前运行着的线程将阻塞直到这个线程实例完成了执行。 package test; public class yieldexample {    public static void main(string[] args) {       thread producer = new producer();       thread consumer = new consumer();       producer.setpriority(thread.min_priority);        consumer.setpriority(thread.max_priority);        producer.start();       consumer.start();    } } class producer extends thread{    public void run()   {       for (int i = 0; i < 5; i++)     {          system.out.println("i am producer : produced item " + i);          thread.yield();       }    } }  class consumer extends thread{    public void run()   {       for (int i = 0; i < 5; i++)      {          system.out.println("i am consumer : consumed item " + i);          thread.yield();       }    } } package test; public class joinexample{    public static void main(string[] args) throws interruptedexception   {       thread t = new thread(new runnable()         {             public void run()            {                system.out.println("first task started");                system.out.println("sleeping for 2 seconds");                try                {                   thread.sleep(2000);                } catch (interruptedexception e)     {                   e.printstacktrace();                }                system.out.println("first task completed");             }          });       thread t1 = new thread(new runnable()     {             public void run()       {                system.out.println("second task completed");             }          });       t.start();        t.join();        t1.start();    } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
房产证上面有四个人的名字,但卖房给我时只有
女主是快穿文的,有次穿到了一个校园文被里面
【时间的价值】时间的价值阅读答案
牌头站地址有知道的么?有点事想过去
我们这的木匠有好多都有残疾'或无后,有
永善县墨翰乡这个地址在什么地方,我要处理点
德邦准时发工资嘛?一般都什么时候发?
河沙镇邮政支局储蓄专柜我想知道这个在什么地
安装工程保险的特点有( )。A.以安装项目为
我今年大三了,英语六级考了多次,每次都只是
新华镇计划生育服务所我想知道这个在什么地方
山东科技大学电子通信与物理学院研究生导师哪
锦志程驾校龙首南路报名联络处在哪里啊,我有
下列哪部著作是董仲舒的作品A       
科目一必须自己去预约吗?我驾照只考科一。
推荐资讯
全国100所名校单元测试示范卷高二数学单元测
平板电脑以太网连接后可不可以做wifi热点
富贵一足足疗会馆地址在什么地方,想过去办事
缆皮林地址在哪,我要去那里办事
电动车电瓶被水泡了,还能用吗?
高一学生坐飞机哟优惠吗需要什么证件?第一次
德州到夏津多少公里?
为什么我的网页都好好的 就是下载不了文件
个人存款证明仅作为客户本人在银行个人金融资
韩流基地地址在哪,我要去那里办事
想去连云港玩,有没有汽车啊?我是威海的。
传说玉帝在哪里修行
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?