线程的基本操作-线程中断

本文深入探讨Java中线程中断的实现方式,包括Thread类的interrupt()方法用于中断线程,isInterrupted()方法检查线程是否被中断,以及interrupted()静态方法判断并清除当前线程的中断状态。通过示例代码展示如何在运行时响应中断信号,以及在捕获InterruptedException后如何正确地重新设置中断标志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程的基本操作-线程中断
public void Thread.interrupt() // 中断线程
public boolean Thread.isInterrupted() // 判断是否被中断
public static boolean Thread.interrupted() // 判断是否被中断,并清除当前中断状态
以下是测试代码

/**
 * 
 * @ClassName: Test
 * @Description:线程中断
 * @author: He LongYun
 * @date: 2019年1月31日 上午10:58:57
 */
public class Test {

	public static void main(String[] args) {
		TestThread testThread = new TestThread();
		Thread t1 = new Thread(testThread);
		// 启动线程
		t1.start();
	}
}
class TestThread implements Runnable {
	@Override
	public void run() {
		while (true) {
			if (Thread.currentThread().isInterrupted()) {
				System.out.println("Interruted!");
				break;
			}
			try {
				// 业务代码
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				System.out.println("Interruted When Sleep");
				// 抛出异常后会清除中断标记位
				// 所以需要设置中断,Thread.currentThread().isInterrupted()才能检测到,
				Thread.currentThread().interrupt();
			}
			Thread.yield();
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值