zoukankan      html  css  js  c++  java
  • java 多线程 join()方法

    void join()    
        等待该线程终止。    
    void join(long millis)    
        等待该线程终止的时间最长为 millis 毫秒。    
    void join(long millis, int nanos)    
        等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。

    功能:让当前线程停止工作,直到插入的线程运行完或经过millis的时间后当前线程才能重新进入可运行状态。

    例子:

    public class Join {

     /**
      * @param args
      */
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Thread t = new Thread(new Runnable() {

       @Override
       public void run() {
        // TODO Auto-generated method stub
        for (int i = 0; i < 30; i++) {
         System.out.println(Thread.currentThread().getName()+" : "+i);
        }
       }
       
      });
      t.start();
      for (int j=0; j<20; j++) {
       if (j == 10)
        try {
         t.join();
        } catch (InterruptedException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        }
       System.out.println(Thread.currentThread().getName() + " : " +j);
      }
     }

    }

    输出:

    main : 0
    main : 1
    Thread-0 : 0
    Thread-0 : 1
    Thread-0 : 2
    Thread-0 : 3
    Thread-0 : 4
    Thread-0 : 5
    main : 2
    main : 3
    Thread-0 : 6
    Thread-0 : 7
    Thread-0 : 8
    main : 4
    main : 5
    main : 6
    main : 7
    main : 8
    main : 9
    Thread-0 : 9
    Thread-0 : 10
    Thread-0 : 11
    Thread-0 : 12
    Thread-0 : 13
    Thread-0 : 14
    Thread-0 : 15
    Thread-0 : 16
    Thread-0 : 17
    Thread-0 : 18
    Thread-0 : 19
    Thread-0 : 20
    Thread-0 : 21
    Thread-0 : 22
    Thread-0 : 23
    Thread-0 : 24
    Thread-0 : 25
    Thread-0 : 26
    Thread-0 : 27
    Thread-0 : 28
    Thread-0 : 29
    main : 10
    main : 11
    main : 12
    main : 13
    main : 14
    main : 15
    main : 16
    main : 17
    main : 18
    main : 19
    很明显的结果,就不作过多解释了。

  • 相关阅读:
    如何用Matplotlib绘制三元函数
    总结一下在新工作中都学到了什么?
    Debian MySQL 卸载和安装 PHP安装
    Sphinx的配置和使用
    Python的多继承
    任务分配准则
    Python解析XMl
    什么是序列化,Python中json的load,loads,dump,dumps和pickle的load,loads,dump,dumps的区别
    程序文件路径和目录的操作之BASEDIR目录获取
    模块和包
  • 原文地址:https://www.cnblogs.com/lovemo1314/p/2647778.html
Copyright © 2011-2022 走看看