qidao123.com技术社区-IT企服评测·应用市场

标题: 6 sleep与yield的比较 [打印本页]

作者: 去皮卡多    时间: 2023-6-30 00:02
标题: 6 sleep与yield的比较
6 sleep与yield的比较

sleep

yield

yield和线程优先级代码实例

  1. //代码实例
  2. public class YieldAndPriority {
  3.    public static void main(String[] args) {
  4.        Runnable task1 = new Runnable() {
  5.            @Override
  6.            public void run() {
  7.                int count = 0;
  8.                //yield,让线程进入就绪态,CPU可能会调度该线程,使得该线程变为执行状态
  9.                Thread.yield();
  10.                while (true) {
  11.                    System.out.println("-------> task1 count=" + count++);
  12.                }
  13.            }
  14.        };
  15.        Runnable task2 = new Runnable() {
  16.            @Override
  17.            public void run() {
  18.                int count = 0;
  19.                while (true) {
  20.                    System.out.println("                            --------------------------------------> task2 count=" + count++);
  21.                }
  22.            }
  23.        };
  24.        Thread t1 = new Thread(task1, "t1");
  25.        Thread t2 = new Thread(task2, "t2");
  26.        //设置优先级1-10 越大优先级越高
  27.        t1.setPriority(1);
  28.        t2.setPriority(10);
  29.        t1.start();
  30.        t2.start();
  31.    }
  32. }
复制代码
  1. //输出结果
  2. ...
  3. --------------------------------------> task2 count=34436
  4. --------------------------------------> task2 count=34437
  5. --------------------------------------> task2 count=34438
  6. --------------------------------------> task2 count=34439
  7. --------------------------------------> task2 count=34440
  8. --------------------------------------> task2 count=34441
  9. --------------------------------------> task2 count=34442
  10. --------------------------------------> task2 count=34443
  11. --------------------------------------> task2 count=34444
  12. -------> task1 count=42407
  13. -------> task1 count=42408
  14. -------> task1 count=42409
  15. -------> task1 count=42410
  16. -------> task1 count=42411
  17. -------> task1 count=42412
  18. -------> task1 count=42413
  19. -------> task1 count=42414
  20. -------> task1 count=42415
  21. -------> task1 count=42416
  22. 进程已结束,退出代码130
复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4