我想运行一个使用执行服务的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