Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java interrupt

作者:刎心封爱为伱锁情   发布日期:2026-04-14   浏览:72

// Java 线程中断示例代码

public class InterruptExample {

    public static void main(String[] args) throws InterruptedException {
        // 创建一个新线程
        Thread thread = new Thread(() -> {
            try {
                // 线程执行一些耗时任务
                for (int i = 0; i < 10; i++) {
                    System.out.println("Task is running...");
                    // 检查线程是否被中断
                    if (Thread.currentThread().isInterrupted()) {
                        System.out.println("Thread is interrupted, stopping...");
                        return;
                    }
                    // 模拟耗时操作
                    Thread.sleep(1000);
                }
            } catch (InterruptedException e) {
                // 捕获中断异常并设置中断标志
                System.out.println("Thread was interrupted during sleep");
                Thread.currentThread().interrupt(); // 恢复中断状态
            }
        });

        // 启动线程
        thread.start();

        // 主线程等待2秒后中断子线程
        Thread.sleep(2000);
        System.out.println("Main thread is interrupting the worker thread...");
        thread.interrupt();
    }
}

解释说明:

  1. 创建和启动线程:我们创建了一个新的线程,并让它执行一个简单的循环任务,每次循环都会打印一条消息,并休眠1秒钟。
  2. 检查中断状态:在每次循环中,我们使用 Thread.currentThread().isInterrupted() 方法来检查线程是否已经被中断。如果线程被中断,则提前退出循环。
  3. 处理 InterruptedException:当线程在 sleep 或其他阻塞方法中被中断时,会抛出 InterruptedException 异常。我们捕获这个异常,并通过调用 Thread.currentThread().interrupt() 来恢复中断状态,确保中断标志不会丢失。
  4. 中断线程:主线程在启动子线程后等待2秒钟,然后调用 thread.interrupt() 来中断子线程。

这个例子展示了如何正确地使用 Java 的线程中断机制来安全地中止正在运行的线程。

上一篇:java public private

下一篇:java 不等于

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站