请问我使用Spring线程池 启动工作任务线程后,如何在线程池外部访问到这个线程任务呢?或者说 如何终止销毁指定的线程呢?
我的工作任务是线程阻塞的类似于socket accept,现在想 UI控制其结束通信,我的想法是通过线程池找到对应的工作线程在访问其工作任务 然后调用intertup并修改while标志位 貌似不是办法 没有找到相关的资料 请朋友们指教这种应用场景该如何实现呢

解决方案 »

  1.   

    Future f = ThreadPoolExecutor.submit(...);
    f.cancel即会中断对应线程
      

  2.   

    谢谢 还是有点不明白 我这是多线程的 每个submit都有f 都需要submit完把获取到的f存起来 然后在根据需要再检索出来cancel吗 存到hashtable吗?
      

  3.   


    请问能否通过f调用到task内部的方法吗?或是有没有其他方式调用线程池中指定线程任务内的方法呢?我主要是在task里实现了线程的终止,但是需要从外部调用 修改里面的while(信号量)的状态 如果使用cancel感觉不太保险 因为没用过怕不能正常结束
      

  4.   

    代码里catch interruptedexception后做,或判断isinterrupted返回true的时候做