线程的各种状态如上图所示。
对于wait/notify的测试,我将会留到 生产者消费者模式中实现。
对于join、interrupt的测试如下:
package com.huan;
public class ThreadTest {
public static void main(String[] args) throws Exception{
// joinTest();
interruptTest();
}
public static void joinTest(){
new Thread(){
@Override
public void run() {
Thread t1 = new Thread(){
@Override
public void run() {
try {
Thread.sleep(3000);
System.out.println("//t1 thread");
} catch (InterruptedException e) {
System.out.println("//sleep interrupted");
}
}
};
t1.start();
try {
t1.join();
} catch (InterruptedException e) {
System.out.println("//join interrupted");
}
System.out.println("//out thread");
}
}.start();
//t1 thread
//out thread
};
public static void interruptTest(){
new Thread(){
@Override
public void run() {
Thread t1 = new Thread(){
@Override
public void run() {
try {
Thread.sleep(3000);
System.out.println("//t1 thread");
} catch (InterruptedException e) {
System.out.println("//sleep interrupted");
}
}
};
t1.start();
System.out.println("//out thread");
t1.interrupt();
}
}.start();
//out thread
//sleep exception
};
}