内容摘要:JAVA中终止线程的方法有哪些Java的多线程编程中,java lang Thread类型包含了一些列的方法start,stop,stopThrowableandsuspend,destroy
JAVA中终止线程的方法有哪些Java的多线程编程中,java.lang.Thread类型包含了一些列的方法start,stop,stopThrowableandsuspend,destroy下面是小编为大家整理的JAVA中终止线程方法有哪些,供大家参考。
JAVA中终止线程的方法有哪些
Java的多线程编程中,java.lang.Thread类型包含了一些列的方法start, stop, stopThrowable and suspend, destroy and resume。下面是小编为大家带来的JAVA中终止线程的方法,欢迎阅读。
JAVA中终止线程的方法
Java的多线程编程中,java.lang.Thread类型包含了一些列的方法start, stop, stopThrowable and suspend, destroy and resume。通过这些方法,我们可以对线程进行方便的操作,但是这些方法中,只有start方法得到了保留。
在Sun公司的一篇文章《Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 》中详细讲解了舍弃这些方法的原因。
如果真的.需要终止一个线程,可以使用以下几种方法:
1、让线程的run方法执行完,线程自然结束。这种方法最好
2、通过轮询和共享标志位的方法来结束线程,例如whileflag,flag的初始值设为真,当需要结束时,将flag的值设为false。这种方法也不很好,因为如果whileflag方法阻塞了,则flag会失效
public class SomeThread implements Runnable
private volatile boolean stop = false;
public void terminate
stop = ture;
public void run
whilestop
// ... some statements
如果线程因为执行sleep或是wait而进入Not Runnable状态,假如是wait 用标志位就方法就不行了,
public final void waitlong timeout
throws InterruptedException
此方法导致当前线程称之为 T将其自身放置在对象的等待集中,然后放弃此对象上的所有同步要求。即当前线程变为等待状态
wait 的标准使用方法
synchronizedobj
while<不满足条件>
obj.wait;
满足条件的处理过程
而您想要停止它,您可以使用第三种即
3 使用interrupt,而程式会丢出InterruptedException例外,因而使得执行绪离开run方法,
例如:
public class SomeThread
public static void mainString[] args
Thread thread=new Threadnew Runnable
public void run
while !Thread.interrupted
// 处理所要处理的工作
try
System.out.println"go to sleep";
Thread.sleep1000;
catch InterruptedException e
e.printStackTrace;
System.out.println"i am interrupted!";
;
thread.start;
thread.interrupt;
执行结果为:
go to sleep
i am interrupted!
推荐访问:线程 终止 方法 JAVA中终止线程方法有哪些 java中终止线程的方法有哪些 java中终止线程的方法有哪些 java中终止线程的方法有哪些类型 java中终止线程的方法有哪些例子