zoukankan      html  css  js  c++  java
  • Thread.yield()方法表示交出主动权,join表示等待当前线程,可以指定秒数

    Thread.yield()方法表示交出主动权,join表示等待当前线程,可以指定秒数

    学习了:http://www.importnew.com/14958.html 膜拜一下

    源码膜拜:

    Thread.yield()没准,顺序输出不一定;

    package com.stono.thread;
    
    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{
        @Override
        public void run() {
            for(int i=0;i<5;i++){
                System.out.println("I am Producer: Procuded Item ============="+ i);
                Thread.yield();
            }
        }
    }
    
    class Consumer extends Thread{
        @Override
        public void run() {
            for(int i=0;i<5;i++){
                System.out.println("I am consumer: Consumed Item "+i);
                Thread.yield();
            }
            
        }
    }

    Join表示要等待当前线程,可以指定等待的毫秒数;

    package com.stono.thread;
    
    import java.util.concurrent.TimeUnit;
    
    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);
                        TimeUnit.SECONDS.sleep(2);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    System.out.println("First task complete");
                }
            });
            
            Thread t1 = new Thread(new Runnable() {
                public void run() {
                    System.out.println("Second task completed");
                }
            });
            
            t.start();
            t.join();
            // t.join(100); // 这个表示等待100毫秒
            t1.start();
        }
    }
  • 相关阅读:
    NOIP2018游记
    NOIP2018T1DAY1——Road(并查集做法??)
    UVA11021 Tribles——概率dp
    捡石头——(期望递推)
    USACO2008mar-gold牛跑步(第k短路:A-star)
    Java中的异常处理
    Java学习手册
    各种应用层注入手段整理 【转载】
    正则表达式学习
    Run-Time Check Failure #0,The value of ESP was not properly saved 错误解决
  • 原文地址:https://www.cnblogs.com/stono/p/8341750.html
Copyright © 2011-2022 走看看