我在面試時被問到這個問題,有人知道嗎?如果JVM崩潰,線程是否仍然存在?
1
A
回答
6
如果JVM由於崩潰而退出,線程將不再存在。如果崩潰是某種內存不足或類似錯誤,則根據具體情況它可能存在也可能不存在。
6
如果一個線程正在運行,JVM沒有崩潰。
但是,有時候人們錯誤地描述了任何拋出異常的情況。如果這是面試官的意思,我會說線程仍在運行,因爲異常被捕獲並且沒有被重新拋出。
4
如果包含JVM的進程已關閉,則其所有線程也會關閉。當OS清理分配給給定進程的所有內存時,這將在操作系統級別處理。我提到進程級別的閉包,以區別JVM可能發生的其他奇怪的,未知的狀態,讓它運行,但處於未知狀態(例如,它可能實際上並沒有做任何事情)。
同樣,如果殺死進程,所有子線程都會關閉,無論它們的類型如何(守護進程/非守護進程)。
3
想象一下,你是JVM。你走出去的路上,並沒有真正看到你要去哪裏,你有一個致命的事故。在不幸發生之前的一瞬間,你腦海中有30件事。想象一下,你腦海裏的那些東西是「線索」
當你在路上被衝上岸時,你是否認爲你仍然會意識到並將所有這些東西放在心上?
0
JVM的執行實例是一個進程。
線程是進程的一部分。
如果這個過程已經結束,那麼它的一部分已經死了。
因此,當您的JVM崩潰或被強制終止時,它所創建的所有線程也會停止執行。另外,當它內部運行的唯一線程是守護進程線程時,JVM會自動終止。
相關問題
- 1. JVM突然崩潰
- 2. 是Shutdownhook保證如果JVM崩潰
- 3. 如果一個線程在多線程環境中崩潰,如何關閉JVM?
- 4. 執行後AsyncTask線程仍然存在,是否正常?
- 5. JProfiler 7.2.2遠程JVM崩潰
- 6. GCTaskThread JVM崩潰
- 7. JpCapWriter崩潰JVM
- 8. 它是否仍然線程安全,如果我先做()然後pop_front()?
- 9. Android開發progressdialog在AsyncTask,但仍然應用程序仍然崩潰
- 10. 有一個全局變量在Nodejs崩潰後仍然存在
- 11. 如果會話過期,視圖狀態是否仍然存在?
- 12. 線程崩潰
- 13. 如果棱鏡模塊崩潰會發生什麼?應用程序是否仍然穩定?
- 14. JVM崩潰EXCEPTION_ACCESS_VIOLATION(0xc0000005)
- 15. JVM偶爾崩潰
- 16. JBoss/HotSpot JVM崩潰
- 17. JVM隨機崩潰
- 18. 崩潰的ActivityThread.handleBindApplication更新AndroidManifest.xml中時,回滾仍然崩潰
- 19. JVM在Lucene上崩潰DataInput.readVInt
- 20. Hibernate在Session.createQuery上崩潰jvm
- 21. Equatable ==功能實現但仍然崩潰
- 22. Swift可選解開仍然崩潰
- 23. 檢查會話是否仍然存在
- 24. Ruby:Test :: Unit是否仍然存在?
- 25. 檢查歌曲是否仍然存在
- 26. TIBCO rvcache是否仍然存在?
- 27. Android的OpenCV - NativeCameraView是否仍然存在?
- 28. 如何檢查給定ID的進程是否仍然存在?
- 29. 簡易應用程序在重新構建後仍然崩潰
- 30. C++線程 - 崩潰
什麼線程? 「墜毀」是什麼意思? –
線程在運行什麼? –
如果有人問我在採訪中,我會要求他們澄清他們的意思...... –