Per*_*ror 6 java multithreading jsf-2
在我们的应用程序中,当用户单击commandlink时,会生成一个弹出窗口.此单击将传递一个id进行处理.
我的托管bean是视图编写的,我正在创建一个线程来完成一些任务.
在用户点击链接的情况下,生成弹出窗口并且线程已开始执行作业,假设用户关闭弹出窗口并尝试单击此次提供不同ID的链接.我的问题是之前启动的线程没有被破坏.我仍然可以获得最新的id详细信息作为响应,但前一个线程仍然执行作业.
我想知道是否有办法在新请求上终止前一个实例线程.我知道我可以使用sessionscoped来实现这一点,但弹出窗口正在同一个会话中打开.
就像您的用例可能的快速解决方案一样:
呼叫:
boolean cancel(boolean mayInterruptIfRunning)
Run Code Online (Sandbox Code Playgroud)
在您的情况下,调用应该使用:
mayInterruptIfRunning=true
Run Code Online (Sandbox Code Playgroud)
剩下的唯一问题是:在哪里保存 Future 参考?:)
如果您也愿意,我们可以讨论这个问题 :)