我在一次採訪中被問到了這一點,現在我很好奇,因爲我不認爲採訪者對我的回答滿意。這裏的問題:調試多線程服務器
多線程服務器應用程序停止工作,並從應用程序的最後一個日誌消息是:
"Some Server Related Message..."
代碼如下所示:
CalledFunc()
{
Code ...
Acquiring Thread lock
Line printing "Some Server Related Message..."
Func();
Releasing Thread Lock
}
- 什麼都要程序員負責做這個調試嗎?
Func()
發生了什麼問題?- 如果在
Func()
中拋出異常,應該如何解決問題?
是什麼樣的應用程序呢? – 2014-10-07 17:15:05
你忘了問一個問題。你告訴我們一個很好的故事,大概你有一些問題,但你忘了實際問這個問題。像大多數面試問題一樣,沒有「一個正確的答案」。面試官希望聽到你如何推斷線程應用程序以及如何進行調試。另外,調試僞代碼非常困難。我們在談論什麼類型的鎖(遞歸?錯誤檢查?)以及我們如何獲得它(鎖定函數?RAII?)很重要。另外,爲什麼這個標籤C?這不是C++代碼還是我們在談論某種C異常方案?如果是這樣,什麼? – 2014-10-07 17:18:25
@java_geek:我是新來的多線程和學習,因爲我們說話。訪員沒有具體說明這是什麼類型的應用程序,而只是爲了識別代碼和樣式的問題。 – joeroot 2014-10-08 09:01:51