試圖讓我的應用程序掛的感覺,一切都運行良好,便掛斷。 然後我附上了Yourkit Profiler,它突出顯示了兩個線程,這些線程在一段時間內沒有改變,並且似乎掛起了。診斷爲什麼是兩個Java線程掛
有趣的是兩個線程都執行相同的任務,但對不同的數據,但該方法簡單這是不共享數據,執行I/O或連接到其他任何一個CPU密集型任務。因此,考慮到這一點
public int[][] computeAssignments(float[][] matrix)
我不明白這可能是導致他們只停留
兩個線程都運行作爲一個ExecutorService
我應該採取什麼方法來解決這個的一部分。
更新
由於格倫猜到了問題竟然是完全無關的線程。只是它們碰巧遇到了同樣的問題,如果提供了一組特定的數據,它們所調用的代碼可能會進入遞歸循環。另一張海報給出的一個很好的提示是檢查分析器是否線程處於Runnable或Waiting狀態,只有當它們處於等待狀態時,它們實際上是否會死鎖。
你意識到這是遠遠不夠的信息來診斷問題,對不對? – cHao
您是否嘗試過使用任何調試工具進行調試?一行一行地嘗試,並且您會意識到確切的問題在哪裏引起。 –
每次都會發生嗎?它是確定性的嗎? – biziclop