首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

thread 守护线程_守护线程与非守护线程

Java中线程分为用户线程(user thread)和守护线程(daemon thread),它们通过Thread的daemon属性标识:true表示守护线程,false表示用户线程。...daemon属性,见Thread.init方法: Thread parent = currentThread(); this.daemon = parent.isDaemon();   当虚拟机中剩余运行的都是守护线程时...可以在Thread.start之前调用Thread.setDaemon方法设置线程属性(用户线程/守护线程)。   ...主线程退出   GC线程就是一个守护线程,保持低优先级进行垃圾回收,不依赖系统资源,当所有用户线程退出之后,GC线程也就没有什么用了,会随即退出。...可以简单理解成守护线程为用户线程服务,当所有用户线程结束,也就不需要守护线程了。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

48820

守护线程与守护进程

守护进程 主进程创建守护进程   其一:守护进程会在主进程代码执行结束后就终止   其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes...Thread(target=foo) t2=Thread(target=bar) t1.daemon=True t1.start() t2.start() print("main-------") 三 守护进程与守护线程的区别...无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 #1.对主进程来说,运行完毕指的是主进程代码运行完毕 #2.对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕...,主线程才算运行完毕 详细解释: #1 主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源(否则会产生僵尸进程),才会结束,...#2 主线程在其他非守护线程运行完毕后才算运行完毕(守护线程在此时就被回收)。

1.9K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    守护线程和非守护线程_java守护线程的作用

    守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。...当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因为没有如果没有了被守护这,也就没有继续运行程序的必要了。如果有非守护线程仍然存活,VM就不会退出。...守护线程并非只有虚拟机内部提供,用户在编写程序时也可以自己设置守护线程。用户可以用Thread的setDaemon(true)方法设置当前线程为守护线程。...虽然守护线程可能非常有用,但必须小心确保其他所有非守护线程消亡时,不会由于它的终止而产生任何危害。因为你不可能知道在所有的用户线程退出运行前,守护线程是否已经完成了预期的服务任务。...2、在守护线程中产生的新线程也是守护线程。 3、 不要认为所有的应用都可以分配给守护线程来进行服务,比如读写操作或者计算逻辑。

    54510

    守护进程

    守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。...守护进程是一个在后台运行并且不受任何终端控制的进程。这也是守护进程最重要的特点。在Linux下创建守护进程的步骤如下。...因此,把文件创建掩码设置为0,可以大大增强该守护进程的灵活性。 关闭文件描述符 用fork新建的子进程会从父进程那里继承一些已经打开了的文件。...这些被打开的文件可能永远不会被守护进程读或写,但它们一样消耗系统资源,可能导致所在的文件系统无法卸载。、 下面是在Linux系统下创建守护进程的一个简单示例。...当我们不需要的守护进程的在后台继续执行的时候,可以通过kill -9 pid来杀死它。我们可以查看daemon.log文件的内容如下: ?

    1.8K10

    守护进程

    5.1 概念 (1)什么是守护进程 Daemon(守护进程)是运行在后台的一种特殊进程。**它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。...Linux系统的大多数服务器就是通过守护进程实现的。 (2)为什么需要守护进程 守护进程是脱离于终端并且在后台运行的进程。...(3)守护进程实例 常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。...改变当前目录为根目录,防止占用其他可卸载的文件系统 d.重设文件权限掩码,防止继承的文件创建屏蔽字拒绝某些权限,增加守护进程的灵活性 e.关闭文件描述符 f.守护进程退出处理 ?...通过 ps -ef | grep ‘daemon’ 如果想退出守护进程,kill -9 就好 其实,上面那套还有更直接的,直接通过库函数来创建守护进程: #include

    1.8K20

    守护进程

    首先,什么是守护进程? 守护进程是一个在后台长期运行并且不受任何终端控制的进程。 其次,为什么需要守护进程?...我们知道linux有许多自带的守护进程,比如syslogd、crond、sendmail等。那用户或开发者自己编写的程序为什么也需要成为守护进程呢? 这主要是因为守护进程的特性。...目的很明显,我们不希望在该终端上见到守护进程的输出,用户也不期望他们在终端上的输入被守护进程所读取。 最后,举个例子来说明一下。...两次fork 守护进程两次调用fork就是出于僵尸进程的考虑:父进程生成守护进程后,还有其它事情要做,其『人生意义』不止是创建守护进程。...而如果父进程先fork子进程,子进程再立刻fork孙子进程,这样孙子进程成为守护进程,立刻被init接管,无论父进程怎么阻塞,都与守护进程无关了。

    2.7K40

    守护线程和非守护线程的区别以及用法_python多线程守护进程

    ✨ 目录 什么是守护线程 非守护线程 守护线程 什么是守护线程 当主线程执行结束后,所有 在运行的子线程都 直接结束,不管子任务是否完成 很多语言的 垃圾收集器 就运用了 守护线程...,去回收程序不再使用的垃圾内存 而非守护线程其实就跟守护线程相反,当主线程结束后,如果子线程还在运行,子线程并不会直接结束,而是 继续完成任务,等待子线程都执行完毕才结束 非守护线程 下面是一个普通线程的例子...,也就是 非守护线程 我们创建了 autofelix 购物线程,去模拟购物流程的任务 可以看出当主线程已经结束,但是子线程依然 没有退出 因为 shopping 这个子线程任务还在工作,所以程序会一直运行下去...守护线程 我们可以通过设置 xxx.daemon = True 将线程变成守护线程 必须在启动之前将线程配置为守护程序或非守护程序,否则 python 将引发运行时错误 守护程序线程不会像普通线程一样正常退出

    55920

    青少年守护守护孩子的“好奇心”

    (腾讯手机管家上线“青少年守护“) 一、“青少年守护“的场景介绍 1、拦截不良网站,保护孩子健康上网 腾讯手机管家联合云安全恶意网址库,实现精准可靠的网址过滤能力。...(家长绑定提醒) “青少年守护”是基于腾讯手机管家长期以来积累的手机安全管理能力,在构建青少年群体移动互联网安全防线方面的一次创新性突破,希望能够净化上网环境,帮助家长引导孩子养成良好的手机使用习惯,守护青少年健康成长...,守护他们的未来。...青少年守护提供手机端游戏时长记录和提醒功能,当孩子玩游戏超过一定限度时,青少年守护会发出提醒,让孩子清楚自己的游戏时间,从而控制适当的学习、娱乐、休息时间,养成良好的手机使用习惯。...(青少年守护家长和孩子端设计)  青少年守护功能上线后,在开启守护功能的孩子中,每天为超过4.8%的孩子拦截不良网站,人均拦截网站5.7次,构筑了青少年上网安全防线。

    1.4K40

    守护进程(daemon)

    守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。...守护进程是一个在后台运行并且不受任何终端控制的进程。这也是守护进程最重要的特点。在Linux下创建守护进程的步骤如下。...因此,把文件创建掩码设置为0,可以大大增强该守护进程的灵活性。 关闭文件描述符 用fork新建的子进程会从父进程那里继承一些已经打开了的文件。...这些被打开的文件可能永远不会被守护进程读或写,但它们一样消耗系统资源,可能导致所在的文件系统无法卸载。、 下面是在Linux系统下创建守护进程的一个简单示例。...结果如下: 当我们不需要的守护进程的在后台继续执行的时候,可以通过kill -9 pid来杀死它。我们可以查看daemon.log文件的内容如下:

    1.4K20

    linux守护进程

    1、什么是守护进程 守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生; 守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行...; 守护进程一般都以root用户权限运行,因为要使用某些特殊的端口或者资源; 守护进程的父进程一般都是init进程,因为它真正的父进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进程,由init...接管; 2、有哪些常见的守护进程 日志服务进程 syslogd 数据库守护进程 mysqld 3、创建守护进程的步骤 1)fork()创建子进程,父进程exit()退出 这是创建守护进程的第一步。...因此从终端输入的字符不可能达到守护进程,守护进程中用常规方法(如printf)输出的字符也不可能在终端上显示出来。...7)守护进程退出处理 当用户需要外部停止守护进程运行时,往往会使用 kill 命令停止该守护进程。所以,守护进程中需要编码来实现 kill 发出的signal信号处理,达到进程的正常退出。

    3.1K20

    守护线程定义

    想要查看线程到底是用户线程还是守护线程,可以通过 Thread.isDaemon() 方法来判断,如果返回的结果是 true 则为守护线程,反之则为用户线程。...守护线程定义 守护线程(Daemon Thread)也被称之为后台线程或服务线程,守护线程是为用户线程服务的,当程序中的用户线程全部执行结束之后,守护线程也会跟随结束。..."守护线程" : "用户线程")); } 以上程序的执行结果如下图所示: 将线程池设置为守护线程 要把线程池设置为守护线程相对来说麻烦一些,需要将线程池中的所有线程都设置成守护线程,这个时候就需要使用线程工厂...,整个程序不会等守护线程 for 循环 10 次之后再进行关闭,而是当主线程结束之后,守护线程一次循环都没执行就结束了,由此可以看出守护线程和用户线程的不同。...,由此我们可以看出守护线程在 Java 体系中权重是比较低的,这就是守护线程和用户线程的区别。

    42520

    13(守护进程)

    13.2 守护进程的特征 守护进程是一种纯粹的后台进程,与运行前环境完全隔离,包括未关闭的文件描述符、控制终端、会话、进程组、工作目录以及文件创建掩码等 很多守护进程是父进程 fork 产生...,所以会继承所有的父进程地址空间中的环境,所以必须在守护进程诞生之初,断绝这些相关环境,当然,守护进程也可以在 linux 系统启动时从启动脚本 /etc/rc.d 中启动,也可以由 crontab 启动...事实上,守护进程与普通进程的编写并没有特别大的区别 13.3 编程规则 (1)进程从创建他的父进程那里继承了文件创建掩码,它可能会修改守护进程创建的文件的存取位。...这样做实现了以下两点:第一,如果该守护进程是通过shell命令启动的,那么父进程终止使得shell认为该命令已执行完毕。...SIGHUP, &sa, NULL) < 0) { perror("sigaction"); exit(-1); } // 再次 fork 让守护进程不再担当会话组长

    78910

    1.11守护线程

    在Java中有两种线程,一种为用户线程,一种为守护线程。 守护线程是一种特殊的线程,它具有“陪伴”的含义,当进程中不存在非守护线程时,则守护线程自动销毁。 典型的守护线程就是垃圾回收线程。...任何一个守护线程,都是JVM中所有的非守护线程的保姆,只要当前JVM实例中存在任何一个非守护线程,且没有结束,守护线程就在工作,只有当最后一个非守护线程结束时,守护线程才随着JVM一同结束工作。...Daemon的作用就是为其他线程运行提供便利,守护线程最典型的应用就是GC。...thread.start(); Thread.sleep(5000); System.out.println("main线程停止了,则守护线程也停止了...随着主线程停止了工作,守护线程随即也停止了工作。 源码地址:https://github.com/lilinzhiyu/threadLearning 本文内容是书中内容兼具自己的个人看法所成。

    604100

    Python 守护进程

    守护进程:通常被定义为一个后台进程,而且它不属于任何一个终端会话(terminal session)。许多系统服务由守护程序实施;如网络服务,打印等。 ...下面是转自一位网友写的编写守护进程的步骤: 1. 调用fork()以便父进程可以退出,这样就将控制权归还给运行你程序的     命令行或shell程序。...[类似的,我们可以改变当前目录至对于守护程序运行重要的文件所在目录] 5. 调用‘umask(0)’以便我们拥有对于我们写的任何东西的完全控制。...[这一步是可选的](译者注:这里指步骤5,因为守护程序不一定需要写文件) 6. 调用‘close()’关闭文件描述符0,1和2。...然后使用一个循环,守护程序可以关闭所有可能的文件描     述符。你必须决定你需要做这个或不做。

    92030

    守护进程详解

    在一个多任务的电脑操作系统中,守护进程(英语:daemon,/ˈdiːmən/或/ˈdeɪmən/)是一种在后台执行的电脑程序。此类程序会被以进程的形式初始化。...守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。 通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。...守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程运行fork,然后使其父进程立即终止,使得这个子进程能在init下运行。这种方法通常被称为“脱壳”。 系统通常在启动时一同引导守护进程。...守护进程为对网络请求,硬件活动等进行响应,或其他通过某些任务对其他应用程序的请求进行回应提供支持。...而作为Unix-like的Mac OS X有守护进程。(在Mac OS X中也有“服务”,但他们与Windows中类似的程序在概念上完全不相同。)

    86921
    领券