白话Java - 守护线程

全文详见个人独立博客:白话Java - 守护线程

白话Java - 守护线程关于”白话”, 偶然想到的词。目的就是用简洁,明快的语言来告诉您,我所知道的一切。 Java中的线程分两类,用户线程和守护线程。 Thread commonThread = new Thread("Common Thread"); 这样就是用户线程。 Thread daemonThread = new Thread("Daemon Thread"); daemonThread.setDaemon(true); 这样就是守护线程。 起了”守护”线程这么动听的名字,自然要起到”守护”的作用。就好比男人要守护妹子。守护线程的作用,按照网上的说法是: 守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。 说白了就是妹子没了,男人也就自尽了。分情况写几个例子,一跑便知。 1. 两个妹子 - 互不相干,你挂你的,我挂我的 /** * 测试两个用户线程的情况 * * @author lihzh(OneCoder) * @date 2012-6-25 下午10:07:16 */ private static void twoCommonThread() { String girlOneName = "Girl One"; Thread girlOne = new Thread(new MyRunner(3000, girlOneName), girlOneName); String girlTwoName = "Girl Two"; Thread girlTwo = new Thread(new MyRunner(5000, girlTwoName), girlTwoName); girlOne.start(); System.out.println(girlOneName + "is starting."); girlTwo.start(); System.out.println(girlTwoName + "is starting"); } private static class MyRunner implements Runnable { private long sleepPeriod; private String threadName; public MyRunner(long sleepPeriod, String threadName) { this.sleepPeriod = sleepPeriod; this.threadName = threadName; } @Override public void run() { try { Thread.sleep(sleepPeriod); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(threadName + " has finished."); } } 开始都活着。 3秒后,妹子1挂了,妹子2活的好好的,她的寿命是5秒。 2. 一妹子一王子 /** * 测试一个用户一个守护线程 * * @author lihzh(OneCoder) * @date 2012-6-25 下午10:22:58 */ private static void oneCommonOneDaemonThread() { String girlName = "Girl"; Thread girl = new Thread(new MyRunner(3000, girlName), girlName); String princeName = "Prince"; Thread prince = new Thread(new MyRunner(5000, princeName), princeName); girl.start(); System.out.println(girlName + "is starting."); prince.setDaemon(true); prince.start(); System.out.println(prince + "is starting"); } 开始快乐的生活着,妹子能活3秒,王子本来能活5秒 但是3秒后,妹子挂了,王子也殉情了。 你可能会问,如果王子活3秒,妹子能活5秒呢。我只能说,虽然你是王子,该挂也得挂,妹子还会找到其他高富帅的,懂? 看,王子已经挂了。 3. 两个王子 /** * 测试两个守护线程 * * @author lihzh(OneCoder) * @date 2012-6-25 下午10:29:18 */ private static void twoDaemonThread() { String princeOneName = "Prince One"; Thread princeOne = new Thread(new MyRunner(5000, princeOneName), princeOneName); String princeTwoName = "Prince Two"; Thread princeTwo = new Thread(new MyRunner(3000, princeTwoName), princeTwoName); princeOne.setDaemon(true); princeOne.start(); System.out.println(princeOneName + "is starting."); princeTwo.setDaemon(true); princeTwo.start(); System.out.println(princeTwoName + "is starting"); } 我只能说,没有妹子,没有活着的理由,直接就都挂了。 现在,你懂守护线程了吗?icon-default.png?t=N7T8https://www.coderli.com/daemon-thread-plain-words/欢迎加入群聊,一起交流探讨【Java学习交流(982860385)】 

关于”白话”, 偶然想到的词。目的就是用简洁,明快的语言来告诉您,我所知道的一切。

Java中的线程分两类,用户线程和守护线程。

Thread commonThread = new Thread("Common Thread");

这样就是用户线程

Thread daemonThread = new Thread("Daemon Thread");
daemonThread.setDaemon(true);

这样就是守护线程

起了”守护”线程这么动听的名字,自然要起到”守护”的作用。就好比男人要守护妹子。守护线程的作用,按照网上的说法是:

守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。

说白了就是妹子没了,男人也就自尽了。分情况写几个例子,一跑便知。

1. 两个妹子 - 互不相干,你挂你的,我挂我的

 全文详见个人独立博客:白话Java - 守护线程

 欢迎加入群聊,一起交流探讨【Java学习交流(982860385)】 

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值