(1)自己创建的线程,用interrupt方法
(2)使用线程池ThreadPoolExecutor,间接创建的线程怎么结束呢?
自己摸索的办法比较笨,期待有大神能指点一下其他办法!shutdown不在讨论范围。
第一,在Callable中抛出一个自定义异常。第二,在自己实现的ThreadPoolExecutor的方法afterExecute中判断,如果是前面自定义的那个异常,就抛出一个Runtime异常。这样以来,该线程就挂了!
但是线程池会自己重新建立一个线程来替代(如此完善的逻辑真让人震惊!)