美文网首页
让线程放弃执行权-yield

让线程放弃执行权-yield

作者: NewNiu | 来源:发表于2023-02-18 10:15 被阅读0次

    例如现在有两个线程T1&T2
    T1的作用是一个给value赋值的功能。
    T2的作用是一当T1value被赋值完成后打印value值的功能。

    T1
    public class ValueTask implements Runnable {
      public static int value = 0;
      @override
      public void run() {
        try {
          Thread.sleep(10000);
        }catch(Exception e) {
          e.printStackTrace();
        }
        // 设置value的值
        value = 100;
      }
    }
    
    T2
    public class PrintTask implements Runnable {
        @Override
        public void run() {
            while(ValueTask.value == 0) {
                 Thread.yeild();// 放弃当前线程的执行权,等ValueTask.value不等于0以后执行后面的动作。
            }
            System.out.println(ValueTask.value);
        }
    }
    

    现实当中,有许多场景会用到类似的功能。例如在执行多线程并发任务后,其中一条任务需要等待另外两个任务执行完成后的结果再将结果组合在一起时的功能就可以这样使用。

    相关文章

      网友评论

          本文标题:让线程放弃执行权-yield

          本文链接:https://www.haomeiwen.com/subject/ibtbkdtx.html