博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(一)线程管理_5---等待线程终止
阅读量:6372 次
发布时间:2019-06-23

本文共 1553 字,大约阅读时间需要 5 分钟。

hot3.png

等待线程终止

在有的时候,需要等待一个线程执行完后才能继续执行后面的程序;比如资源的加载,只有当加载完所有的资源后,在继续执行业务逻辑部分;那么Thread类的join方法,Thread.join()就起这个作用; 当一个线程使用一个线程对象调用了join()方法,那么这个线程对象将会被挂起,直到这个线程对象执行完毕后,调用线程才会继续执行;

动手实现

public class ResourceLoader implements Runnable {    //模拟资源加载    @Override    public void run() {        System.out.printf("Beginning data sources loadding:%s\n", new Date());        try {            TimeUnit.SECONDS.sleep(4);        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.printf("Data source loading has finished:%s\n", new Date());    }    public static void main(String[] args) {        Thread thread1 = new Thread(new ResourceLoader(), "localResourceLoader");        Thread thread2 = new Thread(new ResourceLoader(), "remoteResourceLoader");        thread1.start();        thread2.start();        //主线程等待资源加载完毕        try {            thread1.join();            thread2.join();        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.printf("Main:Resource has been loaded:%s\n", new Date());    }}
一次运行结果:

Beginning data sources loadding:Fri Oct 31 00:09:37 CST 2014

Beginning data sources loadding:Fri Oct 31 00:09:37 CST 2014
Data source loading has finished:Fri Oct 31 00:09:41 CST 2014
Data source loading has finished:Fri Oct 31 00:09:41 CST 2014
Main:Resource has been loaded:Fri Oct 31 00:09:41 CST 2014

要点

Java提供了两个方法

  1. join(long milliseconds)
  2. join(long milliseconds,long nanos)

第二个方法接受两个参数,毫秒,纳秒

join方法是Thread类非静态方法

转载于:https://my.oschina.net/u/1387007/blog/343249

你可能感兴趣的文章
symfony2 HWIOAuthBundle QQ登录问题
查看>>
context规范
查看>>
destroy-method="close"的作用
查看>>
引用计数实现
查看>>
数据挖掘技术(第3版)
查看>>
2013ARM开发者大会
查看>>
第二届全球金融峰会演讲PPT
查看>>
基于开源项目的WebApp开发
查看>>
sql server主动推送客户端更新数据
查看>>
can't connect to local mysql server through socket
查看>>
Android APP的安装路径
查看>>
OpeCV中type与depth的区别
查看>>
Android,谁动了我的内存(1)
查看>>
Maven创建项目
查看>>
以下文件中的行尾不一致,要将行尾标准化吗
查看>>
EMBRACE
查看>>
关闭SELinux
查看>>
android:layout_gravity 和 android:gravity 的区别
查看>>
rsync服务器搭建
查看>>
angularjs过滤器(number)
查看>>