首页 > 其他分享 >【JUC】3-用户线程和守护线程

【JUC】3-用户线程和守护线程

时间:2024-06-02 15:45:05浏览次数:13  
标签:JUC Thread 用户 t1 线程 println 守护

一般情况下不做特别说明配置,默认都是用户线程

 

User Thread

是系统的工作线程,它会完成这个程序需要完成的业务操作

 

Daemon Thread

是一种特殊的线程,为其它线程服务的,在后台默默的完成一些系统性的服务,比如垃圾回收线程就是最典型的例子

守护线程作为一个服务线程,没有服务对象就没有必要继续运行了

如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束了,系统可以退出了

所以加入当系统只剩下守护线程的时候,java虚拟机会自动退出

 

 1     public static void main(String[] args) throws InterruptedException {
 2         Thread t1 = new Thread(() -> {
 3             System.out.println(Thread.currentThread().getName() + "开始运行," + (Thread.currentThread().isDaemon() ? "守护线程" : "用户线程"));
 4             while (true) {}
 5         }, "t1");
 6         t1.setDaemon(true);
 7         t1.start();
 8         
 9         TimeUnit.SECONDS.sleep(3);
10 
11         System.out.println("主线程结束");
12     }

 

标签:JUC,Thread,用户,t1,线程,println,守护
From: https://www.cnblogs.com/zhaohan258/p/18227185

相关文章

  • Java高并发核心编程.卷2,多线程、锁、JMM、JUC、高并发设计模式 (尼恩)电子版百度云
    书获取链接:python33  。c o  m我的阅读笔记:多线程:介绍Java多线程的基础概念,如线程的创建、启动、状态转换、线程间通信等。锁:深入探讨Java中的各种锁机制,包括内置锁(synchronized)、ReentrantLock、ReadWriteLock等,以及它们的使用场景和性能特点。Java内存模型(JMM):解释J......
  • 心链6----开发主页以及后端数据插入(多线程并发)定时任务
    心链—伙伴匹配系统开发主页信息搜索页修改主页开发(直接list用户)在后端controller层编写接口去实现显示推荐页面的功能/***推荐页面*@paramrequest*@return*/@GetMapping("/recommend")publicBaseResponse<List<User>>......
  • Java 线程诊断实战-全面解锁线程转储分析技巧
    大家好!今天,我将为大家带来一个非常实用的主题——如何高效诊断和分析Java线程问题。无论是死锁、线程阻塞,还是资源耗尽等情况,都可能会给线上系统带来严重的影响。而恰当地使用线程转储(ThreadDump)工具无疑是定位和解决问题的重要一环。让我们一同来学习和掌握相关的......
  • JAVA基础|多线程
    什么是线程?线程(Thread)是一个程序内部的一条执行流程。多线程是什么?多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)一.如何在程序中创建出多条线程?Java是通过java.lang.Thread类的对象来代表线程的。1.多线程的创建方式一:继承Thread类定义一......
  • 【JUC】2-一把“锁”两个“并”三个“程”(JAVA多线程相关概念)
    1、一把锁(synchronized)2、两个并(并发并行)并发是在同一实体上的多个事件,是在一台处理器上同时处理多个任务,同一时刻,其实是只有一个时间在发生并行是在不同实体上的多个事件,是在多台处理器上同时处理多个任务,同一时刻,大家真的都在做事情,互不影响3、三个程(进程线程管程)进程......
  • 面试官:说一说如何优雅的关闭线程池,我:shutdownNow,面试官:粗鲁!
    写在开头面试官:“小伙子,线程池使用过吗,来聊一聊它吧!”我:“好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问...”面试官满意的点了点头,紧接着问道:“那你知道如何优雅的关闭线程池吗?”我:“知道知道,直接调用shutdownNow()方法就好了呀!”面试官脸色一变,微怒道:“粗鲁!你给......
  • 利用Linux系统提供的和调度器相关的接口让进程或线程对某个处理器进行绑定
    目录设置进程与CPU的亲和性设置线程与CPU的亲和性设置进程与CPU的亲和性taskset命令允许你查看或设置运行中的进程的CPU亲和性(即该进程可以在哪些CPU上运行)。要将一个已经运行的进程(例如PID为1234的进程)绑定到CPU0和CPU1上,你可以使用:taskset-cp0,11234如果你正在启动一......
  • C++多线程原理详解
    学习C++多线程时,我有如下疑问:mutex的lock和unlock做了什么?mutex、lock_guard、unique_lock,它们之间的关系是什么?condition_variable中的wait做了什么?带着这些疑问,我查阅了一些资料,整理出本文。文章目录一、mutex二、lock_guard三、unique_lock四、condition......
  • Linux线程之读写锁小结
    读写锁(rwlock)与互斥锁(MutexLock)相比,有如下特点:更加细致的区分了读和写,给共享资源分别上了“读”锁和“写”锁。“写”独占,“读”共享,“写”锁优先级更高如果共享资源在绝大多数情况下是“读”操作,可以提高程序的并发性能。常用的函数原型总结如下:pthread_rwlock_trwlock......
  • 单例模式线程安全reorder问题
    单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。下面是一个使用C++实现的线程安全的单例模式的例子:classSingleton{private:staticstd::atomic<Singleton*>instance;//静态私有实例指针使用原子操作类atomic线程安全sta......