public class Demo {

    /**
* Thread类的join()方法
* --------------------------------
* 1)join()
* 2)join(long millis)
* 3)join(long millis, int nanos)
* 用法见代码中注释,可通过调整睡眠时间一一验证。
*/
public static void main(String[] args) { // 创建一个线程组
ThreadGroup threadGroup = new ThreadGroup("ThreadGroup1"); // 在该线程组下创建一个线程t1
Thread t1 = new Thread(threadGroup, new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000); // 3秒后执行
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread1 end ...");
}
}, "Thread1"); // 在该线程组下创建一个线程t2
Thread t2 = new Thread(threadGroup, new Runnable() {
@Override
public void run() {
try {
/*
* t1.join();
* ----------------------------
* 等同于 t1.join(0); t1执行结束后执行t2.
*/
t1.join(); /*
* t1.join(1000);
* ----------------------------
* 等最多1s直至t1死亡。
* |- 如果1s内t1没死,t1执行1s后开始执行t2;
* |- 如果1s内t1死了,不用等满1s直接开始执行t2;
*/
// t1.join(1000); /*
* t1.join(1000, 1000);
* -----------------------------------------
* 类似t1.join(1000);
* 第一个1000,单位是毫秒,第二个1000单位是纳秒 .
* |- 如果第一个参数不是1000,而是0,效果等同 t1.join(0 + 1);
* |- 如果第二个参数大于50万,效果等同 t1.join(1000 + 1);
* |- 如果第一个参数不为0,第二个参数小于50万,效果等同 t1.join(1000);
* 有点延时执行的意思。但是延时的时间只能是0毫秒或1毫秒。
*/
// t1.join(1000, 1000); Thread.sleep(1000); // 1s后执行
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread2 end ...");
}
}, "Thread2"); // 启动线程
t1.start();
t2.start();
}
}

Thread类的join()方法的更多相关文章

  1. 多线程:Thread类的Join()方法

    多线程:Thread类的Join()方法 http://blog.163.com/hc_ranxu/blog/static/3672318220095284513678/ 当我们在线程B中调用Thre ...

  2. C#中Thread类中Join方法的理解(转载)

    指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行      比如 using System; namespace TestThreadJoin { class Pro ...

  3. Java中Thread类的join方法到底是如何实现等待

    现在的场景是A线程执行:public void run(){ bThread.join(0);//把b线程加入到当前线程(a线程),等待b结束,当前a线程才会结束.}B线程执行public void ...

  4. 【java基础】Thread类之join方法

  5. python语言中threading.Thread类的使用方法

    1. 编程语言里面的任务和线程是很重要的一个功能.在python里面,线程的创建有两种方式,其一使用Thread类创建 # 导入Python标准库中的Thread模块 from threading i ...

  6. python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)

    昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...

  7. python全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)

    昨日内容回顾 线程 什么是线程? 线程是cpu调度的最小单位 进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的 ...

  8. 多线程学习笔记(四)---- Thread类的其他方法介绍

    一.wait和 sleep的区别 wait可以指定时间也可以不指定时间,而sleep必须指定时间: 在同步中时,对cpu的执行权和锁的处理不同: wait:释放执行权,释放锁:释放锁是为了别人noti ...

  9. Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? 线程的sleep()方法和yield()方法有什么区别?

    Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间 ...

随机推荐

  1. 打开沙盒文件iOS

    有时使用数据库是需要查看或者更换沙盒里的数据库等文件 那么如何拿到真机的沙盒 查看真机沙盒教程 打开Devices 在xcode的上部导航栏里,选择window -> Devices and S ...

  2. Spring+Quartz实现定时任务的配置方法(转)

    1.Scheduler的配置 <bean id="myScheduler" class="org.springframework.scheduling.quartz ...

  3. git操作中出现Unlink of file '......' failed. Should I try again?

    在操作git中有时候会提示 Unlink of file '......' failed. Should I try again? 原因是你工作目录有某些文件正在被程序使用,这个程序多半是Idea,V ...

  4. Android CollapsingToolbarLayout使用介绍

    我非常喜欢Material Design里折叠工具栏的效果,bilibili Android客户端视频详情页就是采用的这种设计.这篇文章的第二部分我们就通过简单的模仿bilibili视频详情页的实现来 ...

  5. 【放松一下】北美小游戏排行榜TOP10——“点击英雄”

    大家平时工作都比較忙,在这里推荐一款游戏让大家放松一下.让你体验到指数爆炸般挣钱的快感. 北美小游戏排行榜TOP10--"点击英雄" 简要说明: 游戏能够挂机,关闭电脑.游戏也会自 ...

  6. Skyline中加载WMTS地图

    Skyline中默认是Bing地图,必应虽然免费无偏移,但在国内的影像质量并不是很好.不用担心,Skyline支持多种影像图层,包括WFS.WMS.WMTS地图服务.使用地图作为底图有两个好处: (1 ...

  7. If 条件左边写常量?

      if判断时,常量最好写左边 例如: 编程规范反复强调变量放在双等号的右边,常量放在左边,就是为了规避出现 If (ulCnt = 0)这种语法正确,但是极有可能是笔误的情况.为了杜绝这种不必要的逻 ...

  8. 洛谷P1048 采药

    题目OJ地址 https://www.luogu.org/problemnew/show/P1048 https://vijos.org/p/1104 题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世 ...

  9. How to trigger a Kubernetes cronjob manually-手动触发一个cronjob

    What should you do when you’ve developed and installed a cron job for your Kubernetes application, a ...

  10. (原)DropBlock A regularization method for convolutional networks

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9985027.html 论文网址: https://arxiv.org/abs/1810.12890 ...