如何创建并管理守护线程(后台线程)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计450个文字,预计阅读时间需要2分钟。
javapackage com.cn.thread;
/** * Author: Liu Zhiyong * Version: Version_1 * Date: 2016年7月7日16:35:52 * Desc: 守护线程(后台线程):如果一个进程中只剩余守护线程,那么守护线程也会死亡。 */public class GuardThread { public static void main(String[] args) { Thread guardThread=new Thread(() -> { while (true) { System.out.println(守护线程运行中...); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }, GuardThread);
guardThread.setDaemon(true); guardThread.start();
System.out.println(主线程运行中...); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(主线程结束,守护线程将自动结束。); }}
守护线程(后台线程):如果一个进程中只剩下了守护线程,那么守护线程也会死亡。
package com.cn.thread;/**
* Author:Liu Zhiyong
* Version:Version_1
* Date:2016年7月7日16:35:52
* Desc:守护线程(后台线程):如果一个进程中只剩下了守护线程,那么守护线程也会死亡。
* 需求:模拟QQ下载更新包
*/
public class Demo12 extends Thread{
public Demo12(String name) {
super(name);
}
@Override
public void run() {
for(int i=1; i<=100; i++){
System.out.println("更新包目前下载到了" + i + "%");
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i == 100){
System.out.println("更新包下载完毕,准备安装。。。");
}
// try {
// Thread.sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
}
public static void main(String[] args) {
Demo12 d = new Demo12("后台线程");
d.setDaemon(true);//设置线程是否为守护线程,true为守护线程,false为用户线程。
System.out.println("是守护线程吗?" + (d.isDaemon() == true?"是守护线程":"不是守护线程"));
d.setPriority(10);
d.start();
for(int i=1; i<=100; i++){
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
本文共计450个文字,预计阅读时间需要2分钟。
javapackage com.cn.thread;
/** * Author: Liu Zhiyong * Version: Version_1 * Date: 2016年7月7日16:35:52 * Desc: 守护线程(后台线程):如果一个进程中只剩余守护线程,那么守护线程也会死亡。 */public class GuardThread { public static void main(String[] args) { Thread guardThread=new Thread(() -> { while (true) { System.out.println(守护线程运行中...); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }, GuardThread);
guardThread.setDaemon(true); guardThread.start();
System.out.println(主线程运行中...); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(主线程结束,守护线程将自动结束。); }}
守护线程(后台线程):如果一个进程中只剩下了守护线程,那么守护线程也会死亡。
package com.cn.thread;/**
* Author:Liu Zhiyong
* Version:Version_1
* Date:2016年7月7日16:35:52
* Desc:守护线程(后台线程):如果一个进程中只剩下了守护线程,那么守护线程也会死亡。
* 需求:模拟QQ下载更新包
*/
public class Demo12 extends Thread{
public Demo12(String name) {
super(name);
}
@Override
public void run() {
for(int i=1; i<=100; i++){
System.out.println("更新包目前下载到了" + i + "%");
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i == 100){
System.out.println("更新包下载完毕,准备安装。。。");
}
// try {
// Thread.sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
}
public static void main(String[] args) {
Demo12 d = new Demo12("后台线程");
d.setDaemon(true);//设置线程是否为守护线程,true为守护线程,false为用户线程。
System.out.println("是守护线程吗?" + (d.isDaemon() == true?"是守护线程":"不是守护线程"));
d.setPriority(10);
d.start();
for(int i=1; i<=100; i++){
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}

