日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java父线程子线程

發(fā)布時間:2025/6/15 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java父线程子线程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?問:在父線程中New了一個子線程,想在停止父線程時也停止子線程,應(yīng)該怎么做?

答: 從某種程度上講,做不到。 ?? 不管是父線程還是子線程,這只不過是在運行時誰建了誰時用的,一旦所謂的字線程被啟動,這兩個線程是沒有先后貴賤區(qū)分的。 ?? 任何線程是沒有辦法把另外一個線程終止的。 ?? 如果你一定想你說的那樣是線的話,下面是唯一個可行方案。在"父線程"建立“子線程”時,把“父線程”的instance傳過去,在“子線程”里,不停的check"父線程"是否還存活,如果否,停止。 ?? 相反的,如果"父線程"需要在"子線程"終了時結(jié)束,在"父線程"建立“子線程”時,留住“子線程”的instance然后keep ? checking ? whether ? it's ? still ? alive. ================================================================================ 只有在所有非守護(hù)進(jìn)程都停止的情況下,jvm才退出。main線程停止jvm也不一定退出: public class TestMitiThread { public static void main(String[] rags) { System.out.println(Thread.currentThread().getName() + " 線程運行開始!"); new MitiSay("A").start(); new MitiSay("B").start(); System.out.println(Thread.currentThread().getName() + " 線程運行結(jié)束!"); } } class MitiSay extends Thread { public MitiSay(String threadName) { super(threadName); } public void run() { System.out.println(getName() + " 線程運行開始!"); for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); try { sleep((int) Math.random() * 10); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(getName() + " 線程運行結(jié)束!"); } } 運行結(jié)果: main 線程運行開始! main 線程運行結(jié)束! A 線程運行開始! 0 A 1 A B 線程運行開始! 2 A 0 B 3 A 4 A 1 B 5 A 6 A 7 A 8 A 9 A A 線程運行結(jié)束! 2 B 3 B 4 B 5 B 6 B 7 B 8 B 9 B B 線程運行結(jié)束! =========================================== novice expertise inception rudiment prudent ... is the way to go ========================================= sas: sas variable must not be more than 8 characers use character variables sparingly--page 4

轉(zhuǎn)載于:https://blog.51cto.com/vcycyv/316243

總結(jié)

以上是生活随笔為你收集整理的java父线程子线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。