package Thread;
import sample.Log;
/**
* Created with IntelliJ IDEA.
* User: shenzaih
* Date: 13-10-16
* Time: 下午1:55
* 所谓的线程挂起就是指暂停执行,现在有两个线程A,B,如果在线程A中执行b.join()则a就会挂起 直到B终止
* 线程终止
*/
class Sleeper extends Thread{
private int duration;
Sleeper(String name ,int duration) {
super(name);
this.duration = duration;
start();
}
@Override
public void run() {
try {
sleep(duration);
} catch (InterruptedException e) {
Log.d(getName()+" was interrupted ."+ "isInterrupted() = "+isInterrupted());
return;
}
Log.d(getName()+" has awakened");
}
}
class Joiner extends Thread{
private Sleeper sleeper;
Joiner(String name, Sleeper sleeper) {
super(name);
this.sleeper = sleeper;
start();
}
@Override
public void run() {
try {
sleeper.join();
} catch (InterruptedException e) {
Log.d("interrupted");
}
Log.d(getName()+" join completed");
}
}
public class Joining {
public static void main(String s[]){
Sleeper sleepy = new Sleeper("Sleepy",3000),
grumpy = new Sleeper("grumpy",3000);
Joiner dopey = new Joiner("Dopey",sleepy),
doc = new Joiner("Doc",grumpy);
grumpy.interrupt();
}
}
// output:
// grumpy was interrupted .isInterrupted() = false
//Doc join completed
// Sleepy has awakened
// Dopey join completed
线程的挂起join
最新推荐文章于 2025-04-16 23:41:17 发布