Java 要求在取消前启动FutureTask
在我的可调用代码中,我使用信令将多个结束行为通知给另一个线程。可调用对象与执行器中的FutureTasks一起排队。它们也可能在排队后被取消 现在,我的问题是,我的信号工作依赖于至少正在启动的任务,但如果任务在有机会运行之前被标记为已取消,执行者似乎只是跳过了任务 所以,有没有一种方法可以保证任务在运行时总是启动,并且总是取消(通过InterruptedException)Java 要求在取消前启动FutureTask,java,multithreading,concurrency,futuretask,Java,Multithreading,Concurrency,Futuretask,在我的可调用代码中,我使用信令将多个结束行为通知给另一个线程。可调用对象与执行器中的FutureTasks一起排队。它们也可能在排队后被取消 现在,我的问题是,我的信号工作依赖于至少正在启动的任务,但如果任务在有机会运行之前被标记为已取消,执行者似乎只是跳过了任务 所以,有没有一种方法可以保证任务在运行时总是启动,并且总是取消(通过InterruptedException) 另外,您是否可以检查任务是否尚未启动但失败?您可能可以将FutureTask类划分为子类并重写其方法以执行信号发送。根据文
另外,您是否可以检查任务是否尚未启动但失败?您可能可以将FutureTask类划分为子类并重写其方法以执行信号发送。根据文档,即使任务已取消,也应调用此方法 我怀疑答案是一个简单的“不”,这个解决方案非常有效!我添加了一个变量hasStarted来跟踪是否调用了Callable.run(),并在FutureTask.done()中添加了一些信号,如果hasStarted为false就会触发该变量。