守护线程
守护线程
java中线程分为两大类:
-
用户线程
-
守护线程
其中具有代表性的就是:垃圾回收线程(守护线程)。
守护线程的特点:一般守护线程是一个死循环,所有的用户线程只要结束,守护线程自动结束。
注意:主线程main方法是一个用户线程。
守护线程使用的地方:
- 每天0:00点系统自动备份 。需要使用定时器,并且我们可以将定时器设置为守护线程。一直需要使用到定时器,每到0:00的时候就备份一次,所有的用户线程,如果结束了,守护线程就自动退出。(死循环)
定时器
实现线程的第三种方式:FutureTask方式,实现Callable接口。(JDK8新特性)
关于Object类种的wait和notify方法。(生产者消费者模式!)
模拟守护线程!
package ThreadTest;
public class ThreadTest {
public static void main(String[] args) throws InterruptedException {
BakDataThread bakDataThread = new BakDataThread();
Thread thread = new Thread(bakDataThread,"守护线程");
//开启守护线程 开启后线程会在主线程结束的时候自动结束。
thread.setDaemon(true);
thread.start();
for (int i = 0; i < 10; i++) {
Thread.sleep(1000);
System.out.println("==========主程序运行中==========");
}
}
}
class BakDataThread implements Runnable{
@Override
public void run() {
int i = 0;
while (true){
System.out.println(Thread.currentThread().getName()+"--->"+(i++));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

浙公网安备 33010602011771号