簡體   English   中英

java中的調用棧

[英]Call stack in java

在Akka的文檔中,有一部分講到“調用棧的幻覺” ,嗯,附上其中一部分的圖片。 我不明白他在說什么,我的意思是如果 java 中的主線程創建了一個新線程並啟動它,如果在創建的線程中拋出任何異常,主線程將被通知,那么為什么他說“調用者“不會被通知嗎?!

調用堆棧的錯覺

我的意思是如果java中的主線程創建了一個新線程並啟動它,如果在創建的線程中拋出任何異常,主線程將被通知

那是假的。 除非主線程顯式地設置了一個未捕獲的異常處理程序,否則它不會在它啟動的線程中收到任何異常通知(並且未捕獲的異常處理程序也不會在主線程中運行,因此從技術上講,主線程根本不會收到通知)。

“調用堆棧的幻覺”是關於這樣一個事實,即當您使用工作隊列之類的東西在其他線程上安排單獨的任務時,邏輯的概念流不再適合物理調用堆棧。

此類隊列上任何失敗子任務的實際調用堆棧將顯示與處理隊列相關的代碼,但不會顯示與最初排隊任務的代碼相關的調用堆棧,這在許多情況下可以說是更有趣的一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM