Java 终止swt syncExec中挂起的线程池线程
处理显示时,线程池线程始终挂起在swt syncExec调用中。如何避免这种情况,并完全关闭线程?在shell disposeListener内调用Shutdownow不起作用 下面的示例显示了由threadpool线程执行的runnable。您可以在此处找到完整的代码:Java 终止swt syncExec中挂起的线程池线程,java,concurrency,swt,threadpool,terminate,Java,Concurrency,Swt,Threadpool,Terminate,处理显示时,线程池线程始终挂起在swt syncExec调用中。如何避免这种情况,并完全关闭线程?在shell disposeListener内调用Shutdownow不起作用 下面的示例显示了由threadpool线程执行的runnable。您可以在此处找到完整的代码: DoSomething中的syncExec()调用导致死锁。如果将syncExec()替换为asynceec()线程池将正常关闭。使用syncExec()有什么具体原因吗 或者,您应该能够从单独的线程运行关机代码,以避免出现问
DoSomething
中的syncExec()
调用导致死锁。如果将syncExec()
替换为asynceec()
线程池将正常关闭。使用syncExec()
有什么具体原因吗
或者,您应该能够从单独的线程运行关机代码,以避免出现问题。谢谢!!!线程池对通过syncExec()调用获取的数据执行一些操作,因此线程池必须等待结果。
private class DoSomething implements Runnable {
public void run() {
try { Thread.sleep( 500 ); } catch( InterruptedException e ) {e.printStackTrace();}
if( !shell.isDisposed() ) {
display.syncExec( new Runnable() {
public void run() {
drawshit( display );
}
});
}
}
}
}