我想運行一個使用執行服務的swing工作人員,併發生了一些奇怪的事情。我目前使用方法newSingleThreadExecutor();
以及以下操作;與執行者服務混亂凍結
Future<?> f = execService.submit(swingWorker);
JOptionPane.showMessageDialog(null, "Created Future");
f.get(120, TimeUnit.SECONDS);
發生什麼是我的揮杆工人代碼運行完美,只要我不關閉對話框消息框。如果我關閉對話框,那麼我的應用程序就完全凍結了。我相信線程正在被阻塞,但我不確定是什麼原因。
如果我在沒有execService幫助的情況下自行運行擺動工具,它可以很好地工作,但是超時功能當然不可用,這是完整目的。我應該只使用計時器嗎?
感謝
請提供一點信息,擺動工人的目的是什麼,這可能有助於確定死鎖的原因。 – 01es 2012-02-13 17:57:18
你可以發佈一個簡短的,但*完整的*程序,它演示了這個問題? – 2012-02-13 17:58:02