Java中断初窥

      在使用Linux时我们经常可以通过在终端键入 kill quit命令,来结束指定任务。那么Java怎么让一个线程停止呢。其中的一种方法就是让线程中断,什么是中断呢?

      在百度百科查到的解释是:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。 简单点说,就是让当前任务停止啦。

      Java中断是一种协作机制,不会要求被中断线程强制中断。而被中断线程只要在合适时机处理就可以了,但是也可以对中断请求不予理会。

在Thread类中提供了几种有关中断的方法:
这里写图片描述

      我们知道Thread类中有个stop方法也可以使线程停止,那么这两个方法的区别在哪呢?中断会使程序自己去处理何时响应中断,而stop方法会在代码执行的过程中直接抛出ThreadDeath错误。

      介绍这么多了,来看看例子吧。有run1,run2两个线程。run1线程先sleep 1秒,然后在对run2线程发出中断请求。run2线程会一直输出“111111111”直到run1线程对run2发出中断请求。

run1线程类
这里写图片描述

run2线程类
这里写图片描述

测试类
这里写图片描述

测试结果
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值