Java守护线程简介 | winwill2012博客



Java守护线程简介 | winwill2012博客

Java守护线程

Java中的线程分为两类:

  1. 用户线程(非守护线程);
  2. 守护线程

在JVM中,守护线程(Deamon线程)的优先级是很低的,低于用户线程,他们的作用就是服务于用户线程(非守护线程,以后都称用户线程)。你可以把守护线程比喻为服务员,用户线程比喻为顾客,服务员都是围绕顾客存在的,所以如果JVM中所有的用户线程都停止了的话,守护线程也就没有可以服务的线程了,自然就没有存在的价值了,这时JVM将会退出。

只要JVM中存在至少一个用户线程,JVM就不会退出。

在Java中,可以使用如下的方式设置一个线程为守护线程:

1
Thread.setDeamon(true);

setDeamon是线程类中的函数,使用这个函数可以将一个线程设置为守护线程,默认值为false。

有几点需要注意:

  1. 如果要设置一个线程为守护线程,必须在线程启动之前设置,如果线程已经启动了再设置该选项,将会报异常;
  2. 守护线程中新产生的线程也是守护线程;
  3. 一些必须要有结果的任务(比如写文件,计算数据)不应该分配个守护线程执行,因为它可能在某个时刻就随JVM一同退出了。

典型的守护线程

Java中的垃圾回收线程是一个典型的守护线程,它为其他用户线程回收垃圾而存在,假如用户线程全部都退出了,也就不会产生垃圾了,它也就没有必要存在了,这时JVM将退出,随之垃圾回收线程也就退出了。


Read full article from Java守护线程简介 | winwill2012博客


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts