有3個線程:主線程(main()運行的線程),Thread A
和Thread B
。有一個線程啓動另一個線程,然後死
操作順序:
- 程序啓動(主())
- 主線程中實例化並開始
Thread A
。 Thread A
X秒後實例化Thread B
。Thread B
已啓動。Thread B
X秒後實例化Thread A
。Thread A
開始。
如果調用Thread B
是可運行的Thread A
執行的最後一條語句,將Thread A
Thread B
終止後,被實例化並開始了嗎?或者將Thread B
嵌套在Thread A
中,因此創建無限數量的嵌套線程?什麼是默認行爲,我將如何完成NOT創建無限數量的線程(我希望每個以前的線程在孩子生存時結束)。
A Thread.join()
會導致線程等待,直到子線程死亡,是否正確?
如果這一般只是不好的做法,任何人都可以推薦替代品,基本上可以完成同樣的任務嗎?我需要一個函數,幾秒鐘後,調用另一個函數,然後與第一個函數同時運行。第一個函數在完成一些命令後會死掉。第二個函數應該在幾秒鐘後調用第一個函數的新實例。此循環應繼續,直到主線程中止(或直到程序退出)。
如果你不想保持instanciating和銷燬一堆線程,你可以隨時查看工作線程池。這個想法是,線程呆在周圍,給他們工作單位,然後等待更多的工作。好處是你不會浪費時間在不斷的殺死和產生線程的開銷上。 – zero298