java守护线程
2015-08-15 23:11
681 查看
/**
* 后台线程又叫做守护线程,通常是为了辅助其他线程而运行的线程,‘
* 后台线程不妨碍程序终止,
* 一个程序中只要还有一个前台线程在执行,这个后台线程就不会终止。
* 反之,如果所有前台线程都已经结束,无论是否还有后台线程在执行,这个进程都会结束。
* 如果对某个线程对象在启动(调用start()方法)前调用setDeamon(true)方法,这个线程就会变成后台线程。
* 创建一个无限循环后台线程,验证前台线程结束后,它也结束
*/
package com.starain.threaddemo;
public class DaemonThread {
public static void main(String[] args) {
FrontThreadTester t1 = new FrontThreadTester(20);
Thread thread1 = new Thread(t1, "thread1");
DaemonThreadTester thread2 = new DaemonThreadTester("Daemon");
thread1.start();
thread2.setDaemon(true);
thread2.start();
}
}
class FrontThreadTester implements Runnable{ //实现Runnable方法创建线程
private int number;
public FrontThreadTester(int number){
this.number = number;
}
public void run(){
for (int i = 1; i <= number; i++) {
System.out.println("前台线程"+Thread.currentThread().getName()+"正在执行第"+i+"次");
}
}
}
class DaemonThreadTester extends Thread{ //扩展(继承)Thread类创建线程
private String name;
public DaemonThreadTester(String name){
this.name = name;
}
public void run(){
super.run();
while(true){
try {
Thread.sleep(1);
System.out.println(name+" is running...");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
* 后台线程又叫做守护线程,通常是为了辅助其他线程而运行的线程,‘
* 后台线程不妨碍程序终止,
* 一个程序中只要还有一个前台线程在执行,这个后台线程就不会终止。
* 反之,如果所有前台线程都已经结束,无论是否还有后台线程在执行,这个进程都会结束。
* 如果对某个线程对象在启动(调用start()方法)前调用setDeamon(true)方法,这个线程就会变成后台线程。
* 创建一个无限循环后台线程,验证前台线程结束后,它也结束
*/
package com.starain.threaddemo;
public class DaemonThread {
public static void main(String[] args) {
FrontThreadTester t1 = new FrontThreadTester(20);
Thread thread1 = new Thread(t1, "thread1");
DaemonThreadTester thread2 = new DaemonThreadTester("Daemon");
thread1.start();
thread2.setDaemon(true);
thread2.start();
}
}
class FrontThreadTester implements Runnable{ //实现Runnable方法创建线程
private int number;
public FrontThreadTester(int number){
this.number = number;
}
public void run(){
for (int i = 1; i <= number; i++) {
System.out.println("前台线程"+Thread.currentThread().getName()+"正在执行第"+i+"次");
}
}
}
class DaemonThreadTester extends Thread{ //扩展(继承)Thread类创建线程
private String name;
public DaemonThreadTester(String name){
this.name = name;
}
public void run(){
super.run();
while(true){
try {
Thread.sleep(1);
System.out.println(name+" is running...");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/143bbfb50a8bb04b9e6e44f6a4aa42eb.png)
相关文章推荐
- org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IPr
- Java内存分配和垃圾回收
- Java NIO系列教程(二) Channel
- 笨笨熊搬家——交通(java)
- 正宗冒泡法-java语言实现
- java类集框架图(google找的,备个份)
- Java NIO系列教程(一) Java NIO 概述
- SpringMvc参数的传递(传值)
- 【java开发】面向对象初步认识与基础概念讲解
- Java 数组和链表的区别和特点
- eclipse启动错误:java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer
- [Java]Invert Binary Tree翻转二叉树
- Spring+SpringMVC+JPA
- 【深入】java 单例模式
- SpringMVC 基础教程 简单入门实例
- Java字符串编程--最长连续字母序列的长度
- ExtJs4获取后台session springmvc
- [Java]寻找最低公共祖先(普通树的情形)Lowest Common Ancestor of a Binary Tree
- myeclipse 查找文件(open type)快捷键
- [Java]寻找最低公共祖先(排序二叉树)Lowest Common Ancestor of a Binary Search Tree