當主線程崩潰而其它線程繼續運行時發生什么? Eric E. Allen([email protected]) 博士研究生候選人,Rice 大學 2001 年 8 月
在多線程代碼中,使用驅動其它線程所負責的動作的單個主線程是常見的。這個主線程發送消息,通常是通過把它們放到一個隊列中,然后其它線程處理這些消息。但是假如主線程拋出一個異常,那么剩余的線程會繼續運行,等待更多輸入到該隊列,導致程序凍結。在診斷 java 代碼的這一部分中,專職 Java 開發者兼兼職捉蟲者 Eric Allen 討論檢測、修復和避免這一錯誤模式。請在討論論壇與作者和其他讀者共享您關于本文的心得。 用多線程編寫代碼對程序員大有好處。多線程能使編程(和程序)進行得快得多,而且代碼能有效得多地使用資源。然而,跟生活中的很多事情一樣,多線程也存在缺點。因為多線程代碼天生是非確定性的,出現錯誤的可能性大得多。而且,確實發生的的錯誤很難重現,因此也更難解決。