如何在Java代码示例中停止线程

如何在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值