是否收集了線程垃圾?
此範例展示了一個正在運行的線程,儘管在主線程中遺失了其引用,但仍保持活動狀態。
<code class="java">public class TestThread { public static void main(String[] s) { Thread t = new Thread() { public void run() { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { } System.out.println("thread is running..."); } } }; t.start(); // Line A t = null; // Line B while (true) { try { Thread.sleep(3000); } catch (InterruptedException e) { } System.gc(); System.out.println("Executed System.gc()"); } // The program will run forever until you use ^C to stop it } }</code>
理解垃圾收集機制
對線程t 的引用在B 行被刪除,但該線程繼續執行,因為它被視為“垃圾收集根」 」。這與主執行緒的行為類似,主執行緒也缺乏直接引用,但不符合收集條件。洩漏。 >
以上是正在運行的線程是否有資格進行垃圾收集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!