知识大全 守护线程

Posted

篇首语:从来好事天生俭,自古瓜儿苦后甜。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 守护线程相关的知识,希望对你有一定的参考价值。

Java并发编程:守护线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在Java中有两类线程 用户线程(UserThread) 守护线程(DaemonThread)

  所谓守护线程 是指在程序运行的时候在后台提供一种通用服务的线程 比如垃圾回收线程就是一个很称职的守护者 并且这种线程并不属于程序中不可或缺的部分 因此 当所有的非守护线程结束时 程序也就终止了 同时会杀死进程中的所有守护线程 反过来说 只要任何非守护线程还在运行 程序就不会终止

  用户线程和守护线程两者几乎没有区别 唯一的不同之处就在于虚拟机的离开 如果用户线程已经全部退出运行了 只剩下守护线程存在了 虚拟机也就退出了 因为没有了被守护者 守护线程也就没有工作可做了 也就没有继续运行程序的必要了

  将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现 在使用守护线程时需要注意一下几点

  ( )thread setDaemon(true)必须在thread start()之前设置 否则会跑出一个IllegalThreadStateException异常 你不能把正在运行的常规线程设置为守护线程

  ( )在Daemon线程中产生的新线程也是Daemon的

  ( )守护线程应该永远不去访问固有资源 如文件 数据库 因为它会在任何时候甚至在一个操作的中间发生中断

  代码示例

  import ncurrent TimeUnit /** * 守护线程*/ public class Daemons /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException Thread d = new Thread(new Daemon()) d setDaemon(true) //必须在启动线程前调用d start() System out println( d isDaemon() = + d isDaemon() + ) TimeUnit SECONDS sleep( ) class DaemonSpawn implements Runnable public void run() while (true) Thread yield() class Daemon implements Runnable private Thread[] t = new Thread[ ] public void run() for (int i= i<t length i++) t[i] = new Thread(new DaemonSpawn()) t[i] start() System out println( DaemonSpawn + i + started ) for (int i= i<t length i++) System out println( t[ + i + ] isDaemon() = + t[i] isDaemon() + ) while (true) Thread yield() 运行结果

  d isDaemon() = true DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true t[ ] isDaemon() = true

  以上结果说明了守护线程中产生的新线程也是守护线程

  如果将mian函数中的TimeUnit SECONDS sleep( ) 注释掉 运行结果如下

  d isDaemon() = true DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started DaemonSpawn started 以上结果说明了如果用户线程已经全部退出运行了 只剩下守护线程存在了 虚拟机也就退出了 下面的例子也说明了这个问题

  代码示例

  import ncurrent TimeUnit /** * Finally shoud be always run ?

  */ public class DaemonsDontRunFinally /** * @param args */ public static void main(String[] args) Thread t = new Thread(new ADaemon()) t setDaemon(true) t start() class ADaemon implements Runnable public void run() try System out println( start ADaemon…… ) TimeUnit SECONDS sleep( ) catch (InterruptedException e) System out println( Exiting via InterruptedException ) finally System out println( This shoud be always run ? ) 运行结果

  start ADaemon……

  如果将main函数中的t setDaemon(true) 注释掉 运行结果如下

  start ADaemon……

cha138/Article/program/Java/hx/201311/27133

相关参考

守护卫星

与类似土星环的环系并行运动并以其引力维持环系稳定结构的小卫星的一种称呼。

知识大全 中国传统节日现状的守护和弘扬

  当今时代,城乡一体化正在行进,经济一体化正在形成,传统民族文化与民间艺术的多样化面临巨大挑战,如果对传统民间民俗节日文化不抢救、不守护、不传承,风格独特的节日文化形态就会在经济全球化的过程中消失,

千名大学生守护深圳水库 定期清洁 参与巡查

“我自愿认领深圳水库水源保护区,守护水库的清洁,抵制与监督一切污染水库行为……”6名大学生代表在深圳水库郑重做出承诺。广东省深圳市近日举行“生命水,幸福水”——千名大学生认保深圳水库水源保护区活动。据

千名大学生守护深圳水库 定期清洁 参与巡查

“我自愿认领深圳水库水源保护区,守护水库的清洁,抵制与监督一切污染水库行为……”6名大学生代表在深圳水库郑重做出承诺。广东省深圳市近日举行“生命水,幸福水”——千名大学生认保深圳水库水源保护区活动。据

知识大全 一个男唱,歌词有远方的亲人,让我用一生守护着你,求是哪首歌

一个男唱,歌词有远方的亲人,让我用一生守护着你,求是哪首歌一生守护你演唱:天籁回音作词:马健涛作曲:tonny编曲:马健涛录音:李冰后期:马健涛你像只蝴蝶飞进我的世界里停息我看不清你猜不透你朦胧爱上你

知识大全 有人告诉我:他要守护我一辈子!能相信吗

有人告诉我:他要守护我一辈子!能相信吗?“承诺”的可信度高吗?您好:承诺往往总是一时冲动,可承诺却是种拥有魔法的东西,有些人会去相信,可有些人不愿去相信。承诺是种非常好用的手段,能感动人、能欺骗人,可

破壁小球藻 人类健康的守护医生

小球藻被推崇为完美的天然营养食品,它富含与天然核酸复合的短链多肽蛋白质,有维生素B、维生素C、维生素E及主要矿物质,锌和铁的含量极高,可当作补品使用。经发现,它具有增强免疫力、改善消化功能,助于身体排

被称为“长寿元素”、“抗癌之王”、“心脏守护神”的微量元素是

被称为“长寿元素”、“抗癌之王”、“心脏守护神”的微量元素是_____。A、硅B、磷C、硒D、砷答案:C解析:硒被科学家称之为人体微量元素中的“抗癌之王”。科学界研究发现,血硒水平的高低与癌的发生息息

知识大全 要mp3下载的守护甜心星那歌呗的歌,急

要mp3下载的守护甜心星那歌呗的歌,急!用酷我音乐盒下载歌曲或者酷狗音乐下载要mp3格式可以用格式转换器天语T760的手机可以用什么手机套。。急...您好,目前,购买手机保护壳有两种比较好的方式1、直

知识大全 女强人身边的男人,必定是一个自身能力就很强,但却又甘愿在她身后守护的人

女强人身边的男人,必定是一个自身能力就很强,但却又甘愿在她身后守护的人!不管再怎么坚强的女人,在自己喜欢的男人面前,她总是很柔弱的,所以不要说女强人后面有一个,什么样的男人,因为在事业方面女人是强,但