thread stop interrupt, ExecutorService shutdown shutdownnow,怎样终止线程
记性不好,还是要烂笔头。
终止线程用什么方法最好:答案是使用共享变量在while中判断。
那么Thread提供的stop interrupt, ExecutorService提供的shutdown, shutdownAll不行吗?答案是不行。
解释:
stop方法是过时的
interrupt:如果线程中没有sleep 、wait、Condition、定时锁等应用, interrupt()方法是无法中断当前的线程的。
shutdown, shutdownAll:它试图终止线程的方法是通过调用Thread.interrupt()方法来实现的。
另外在使用共享变量时也要注意:
多个线程访问共享变量时无论读或者写都要保证同步。(参见 effective java item 66.)
参见:http://blog.ureshika.com/archives/152.html
http://www.blogjava.net/jinfeng_wang/archive/2008/04/27/196477.html