java中给出一个主线程要join子线程的例子

下面给出了一个join和interrupt互动的例子,还是主线程要join子线程。
例:1.5.3_1-本章源码
class ThreadMark_to_win extends Thread {
    Thread mainT;
    int e;
    public void run() {
        for (int i = 0; i < 10; i++)
        {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e1) {
                e1.printStackTrace();
            }
            if(i==4) mainT.interrupt();
            e = e + i;
        }
        System.out.println("完成"+"e 在子线程"+e);
    }
    public void setMainThread(Thread t1) {
        mainT=t1;
      
    }
}
public class Test {
    public static void main(String[] args) {
        Thread mainT = Thread.currentThread();
        ThreadMark_to_win tm = new ThreadMark_to_win();
        tm.setMainThread(mainT);
        tm.start();
        try {
            tm.join();
        } catch (InterruptedException e) {
            System.out.println("我是主程序, 也被打断");
        }
        System.out.println("主线程e = " + tm.e);
    }
}
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
输出结果:
我是主程序, 也被打断
主线程e = 10
完成e 在子线程45

后续:
马克-to-win:在上述的例子中:主线程还是想join子线程,但子线程当计算到i==4时,打断了主线程,所以主线程打出e=10;但子线程继续自己的线程运行,所以打印出“完成e 在子线程45”