美文网首页
守护线程与非守护线程的区别

守护线程与非守护线程的区别

作者: 逝去丶浅秋 | 来源:发表于2020-07-09 16:42 被阅读0次

    java中两类线程:User Thread(用户线程)和Daemon Thread(守护线程)。

    任何一个守护线程都会守护整个JVM中所有的非守护线程,只要当前JVM中还有任何一个非守护线程没有结束,守护线程就全部工作,当所有的非守护线程全部结束后,守护线程也会随着JVM一同结束。守护线程最典型的应用就是GC(垃圾回收器)。

    需要注意的地方:
    1、thread.setDaemon(true)方法必须在thread.start()之前设置,否则会报IllegalThreadStateException异常,不能把正在运行的常规线程设置为守护线程。
    2、在守护线程中产生的新线程也是守护线程。
    3、不是所有应用都可以分配守护线程来进行服务,比如读写操作或是计算逻辑等。因为如果非守护线程都结束了,但是读写或计算逻辑没有完成,守护线程也会停止。

    判断线程是否为守护线程的方法是:isDaemon(),返回true为守护线程,返回false为非守护线程


    写在最后:

    • 如果文章中有错误或是表达不准确的地方,欢迎大家评论中指正,以便我完善。
    • 文章我也会根据所学到新的知识不断更新。

    相关文章

      网友评论

          本文标题:守护线程与非守护线程的区别

          本文链接:https://www.haomeiwen.com/subject/yvsscktx.html