Java终止线程的方法

2014-11-24 08:10:18 · 作者: · 浏览: 2

Java中断线程的方法有很多,最简单的是直接调用stop()和subspend()方法,但是这两种方法并不推荐使用,因为它们有可能导致数据的不同步而发生死锁现象。如果真的需要终止一个线程,可以使用以下几种方法:


1、让线程的run()方法执行完,线程自然结束。(这种方法最好)


2、通过轮询和共享标志位的方法来结束线程,例如while(flag){},flag的初始值设为真,当需要结束时,将flag的值设为false。(这种方法也不很好,因为如果while(flag){}方法阻塞了,则flag会失效)


3、通过调用interrupt方法和捕获InterruptedException异常来终止线程。


实际上最好的方法是使用线程池,当线程不用了,就让它sleep并放进队列中,这样可以最大限度地利用资源。