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

java守护线程

作者:古枕清风   发布日期:2026-01-10   浏览:17

// Java守护线程示例代码

public class DaemonThreadExample {

    public static void main(String[] args) {
        // 创建一个普通线程
        Thread normalThread = new Thread(() -> {
            for (int i = 0; i < 5; i++) {
                System.out.println("Normal Thread: " + i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        // 创建一个守护线程
        Thread daemonThread = new Thread(() -> {
            while (true) {
                System.out.println("Daemon Thread is running...");
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        // 设置daemonThread为守护线程
        daemonThread.setDaemon(true);

        // 启动线程
        normalThread.start();
        daemonThread.start();

        // 主线程等待normalThread完成
        try {
            normalThread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 主线程结束,由于守护线程不会阻止JVM退出,所以daemonThread也会随之终止
        System.out.println("Main thread finished.");
    }
}

解释说明:

  1. 普通线程 (normalThread):执行5次循环,每次打印一条消息并休眠1秒。主线程会等待这个线程完成。
  2. 守护线程 (daemonThread):无限循环,每隔500毫秒打印一条消息。由于它是守护线程,当所有非守护线程(如normalThread)结束后,JVM会自动终止它。
  3. 设置守护线程:通过调用daemonThread.setDaemon(true)将线程设置为守护线程。必须在启动线程之前设置。
  4. 主线程等待:使用normalThread.join()让主线程等待normalThread完成后再继续。

normalThread结束后,JVM会终止守护线程并退出程序。

上一篇:java转义

下一篇:java获取客户端ip地址

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java读取excel中的图片

java新建

java base64 加密

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

Laravel 中文站