java编程思想笔记-并发之线程加入
2017-08-07 18:57
441 查看
package com.tij.learning1; /** * * @author wenruo * @date 2017-8-7 * */ class Joiner extends Thread{ private Sleeper sleeper; public Joiner(String name,Sleeper sleeper){ super(name); this.sleeper=sleeper; start(); } @Override public void run(){ try { //将当前线程挂起,直至sleeper线程运行完毕,继续调用当前线程 sleeper.join(); } catch (InterruptedException e) { System.out.println(sleeper.getName()+" has interrupted"); } System.out.println(getName()+" completed"); } } class Sleeper extends Thread { private int duration; public Sleeper(String name,int sleeperTime){ super(name); this.duration=sleeperTime; start(); } @Override public void run(){ try { sleep(duration); } catch (Exception e) { System.out.println(getName()+" has interrupted"); return; } System.out.println(getName()+" has awakened"); } } public class JoinTest extends Thread { public static void main(String[] args) { Sleeper sleeper=new Sleeper("Sleepy", 1500), grumpy=new Sleeper("Grumpy", 1500); Joiner dopey=new Joiner("Dopey", sleeper), doc=new Joiner("Doc", grumpy); //设置grumpy interrupt 线程已经中断,但是在异常被捕获的时候将清理该标志, //所以线程在异常捕获的时候,这个标志始终为假 grumpy.interrupt(); } }
相关文章推荐
- (38)21.3.8 线程本地存储---Java编程思想之并发笔记
- java编程思想笔记-并发之线程协作(三)
- (28)21.3.2 解决共享资源竞争---Java编程思想之并发笔记
- (43)21.4.3 中断---Java编程思想之并发笔记
- 编程实践笔记{Java 线程 并发处理 Webservice}(转)
- (39)21.4 终结任务---Java编程思想之并发笔记
- (35)21.3.6 在其它对象上同步---Java编程思想之并发笔记
- Java并发编程实践笔记之—线程封闭(Thread Confinement)
- Java并发编程实践笔记(一)——chapter1(IO,连接,线程)
- Java并发编程实践笔记之—线程
- 编程实践笔记{Java 线程 并发处理 Webservice}
- java 编程思想笔记 中断阻塞的线程
- (32)21.3.4 原子类---Java编程思想之并发笔记
- java线程学习(二)—并发编程实践学习笔记
- (45)21.4.3 并发 练习 19---Java编程思想之并发笔记
- (29)21.3.3 原子性与易变性---Java编程思想之并发笔记
- (27)21.3.1 不正确的访问资源---Java编程思想之并发笔记
- [java 编程思想学习笔记] java 线程状态
- (40)21.4.1 装饰性花园---Java编程思想之并发笔记
- (48)21.4.4 检查中断---Java编程思想之并发笔记