如何在Java代码示例中停止线程
线程是Java中重要的类之一,多线程是最广泛使用的一个特性,但是没有明确的方法来阻止Java中的Thread。早些时候在Thread类中存在一种停止方法,但是由于一些安全原因,Java不赞成该方法。默认情况下,当run()方法的执行正常结束或由于任何Exception时,Thread停止。在本文中,我们将使用布尔状态变量或标志来停止Java中的Thread。使用一个标志停止Thread是一种非常流行的停止线程的方式,它也是安全的,因为它没有做任何特殊的事情,而不是帮助run()方法完成它自己。
如何在Java中停止线程
正如我前面所说,一旦run()方法完成后,Java中的Thread将会停止。另一个重要的问题是你不能重新启动一个已经完成run ()方法的线程,你将得到一个IllegalStateExceptio,这里是一个用Java停止线程的示例代码。
示例代码在Java中停止线程
private class Runner extends Thread{
boolean bExit = false;
public void exit(boolean bExit){
this.bExit = bExit;
}
@Override
public void run(){
while(!bExit){
System.out.println("Thread is running");
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadTester.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
我们应该使bExit挥发
由于每个线程在Java中都有其自己的本地内存,所以它使得bExit易变,因为我们可能会改变任何线程的bExit值并使其变得易变,从而保证Runner在制作bExit之前也会看到任何更新。
这就是如何停止Java中的线程,让我知道如果你找到任何其他方式停止Java中的线程,而不使用不推荐使用的stop()方法。
https://javarevisited.blogspot.com/2011/10/how-to-stop-thread-java-example.html