1.join与interrupt的用法
class Sleeper extends Thread { private int duration; public Sleeper(String name,int sleepTime) { super(name); duration=sleepTime; start(); } public void run(){ try { sleep(duration); } catch (Exception e) { System.out.println(getName()+" was interrupted."+"isInterrupted():"+isInterrupted()); return; } System.out.println(getName()+" has awakened"); } } class Joiner extends Thread{ private Sleeper sleeper; public Joiner(String name,Sleeper sleeper){ super(name); this.sleeper=sleeper; start(); } public void run(){ try { sleeper.join(); } catch (Exception e) { System.out.println("Interrupted"); } System.out.println(getName()+" join completed"); } } public class Joining { public static void main(String[] args) { Sleeper sleepy=new Sleeper("Sleepy", 1500), grumpy=new Sleeper("Grumpy", 1500); Joiner dopey=new Joiner("dopey", sleepy), doc=new Joiner("doc", grumpy); grumpy.interrupt(); } }
原文:http://www.cnblogs.com/zhuawang/p/3595420.html