Java停止线程及有锁时停止方法

当我们刚学完Thread一个线程t1之后,迫不及待地键入t1.start()开始启动线程,肯定思考过如何将这个线程停下来

其实原理只有一个,那就是让run方法结束

要知道开启多线程运行,其运行代码通常都是循环结构,只要控制住循环就可以让run方法结合苏,也就是线程结束

比如写个代码

class StopThread implements Runnable
{
      
    public synchronized void  run()
    {
        while(true)
        {
            System.out.println(Thread.currentThread().getName()+"...run");
        }   
    }   
}
public class StopThreadDemo {
   
    public static void main(String[] args) {
        StopThread st=new StopThread();
        Thread t1=new Thread(st);
        Thread t2=new Thread(st);
        t1.start();
        t2.start();
        int num=0;
        while(true)
        {
            if(num++==60)
            {
                break;
            }
            System.out.println(Thread.currentThread().getName()+"......"+num);
        }
    }
}

这个小程序很简单,就是让两个线程一直跑,跑到60次之后就break,想法是好的,这个程序我是不会去跑的,因为我知道这个是无限循环,while(true)这个标记让它一直转

所以如果while(true)这个标记能够控制住,这个小程序就能停下来

  • 可以定义个flag=true,再定义个changeFlag()方法,这个方法里面将flag切换为false
    将while(true)改为while(false)
  • 如果num++=60,就调用changeFlag方法
class StopThread implements Runnable
{
      
    private boole
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值