java中請(qǐng)給出了一個(gè)主線(xiàn)程要join一個(gè)子線(xiàn)程的例子
一個(gè)線(xiàn)程join另一個(gè)線(xiàn)程,(包括和interrupt互動(dòng)的用法)
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
馬克-to-win:join的意思就是本線(xiàn)程停下來(lái),等著另外一個(gè)線(xiàn)程完事,之后執(zhí)行本線(xiàn)程的下一句話(huà)。(感覺(jué)有點(diǎn)像過(guò)去張三等著李四,等到后join在一起一塊繼續(xù)走)下面給出了一個(gè)主線(xiàn)程要join一個(gè)子線(xiàn)程的例子。
例:1.5.3-本章源碼
class ThreadMark_to_win extends Thread {
int e;
public void run() {
for (int i = 0; i < 4; i++) {
e = e + i;
}
System.out.println("完成");
}
}
public class Test {
public static void main(String[] args) {
ThreadMark_to_win tm = new ThreadMark_to_win();
tm.start();
try {
/*本線(xiàn)程停在這兒等著tm線(xiàn)程結(jié)束,接著執(zhí)行本線(xiàn)程下面的程序*/ tm.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
/*注意雖然tm線(xiàn)程結(jié)束了,只是它作為線(xiàn)程的狀態(tài)變成了結(jié)束,但是tm作為實(shí)例還存在, 你并沒(méi)有tm=null,(如果你tm=null,之后執(zhí)行tm.e,會(huì)報(bào)空指針異常,)線(xiàn)程的狀態(tài)和實(shí)例是兩碼事。*/
System.out.println("e = " + tm.e);
}
}
輸出結(jié)果:
完成
e = 6