Timer-2 線程正在等待 0x00000000e1a23398,并且它還鎖定了 0x00000000e1a23398。這種情況會不會導致 Timer-2 線程死鎖?有人可以為我解釋一下嗎?
1 回答

千萬里不及你
TA貢獻1784條經驗 獲得超9個贊
這不是僵局的證據。
Timer-2 已獲取TaskQueue
對象上的鎖并正在等待同一對象上的通知。事實上,如果線程在它調用的Object.wait()
那一點上沒有持有鎖,它就會得到一個IllegalMonitorStateException
.
我并不是說您的應用程序根本沒有陷入僵局。但是,兩個線程“Timer-1”和“Timer2-”都在等待其他線程通知它們。這不是典型的死鎖,其中兩個線程將各自等待另一個釋放鎖。
我還能弄清楚什么?
好吧,從查看代碼java.util.Timer
:
“Timer-2”線程只是等待下一次定時器觸發。對于
Timer
.“Timer-1”線程正在執行定時器任務。它似乎試圖創建到(大概)遠程服務的 NSQ 連接。如果它被阻塞,那大概意味著它試圖連接的服務由于某種原因無法訪問。
沒有更多可以從堆棧轉儲中收集到的信息……無需深入研究“com.trendrr.nsq”源代碼。
有什么想法可以用來找出原因嗎?
查看日志文件。
檢查配置(或其他)以找出它嘗試連接的服務的主機/端口。
檢查服務是否正在運行
檢查它是否可以從客戶端訪問
深入了解源代碼
調試、撓頭等等。
作為最后的手段,聘請顧問。
添加回答
舉報
0/150
提交
取消