java线程学习(二)
守护线程
Java中线程分为两类:
- 一类是:用户线程
- 一类是:守护线程(后台线程)
代表性的例如:垃圾回收线程
守护线程特点:
- 一般守护线程是一个死循环
- 所有用户线程只要结束,守护线程自动结束(即使守护线程是死循环)
主线程main方法是一个用户线程
创建守护线程:
1 | Thread thread = new Thread(new DaemonThread()); |
定时器
定时器作用:
- 间隔特定的时间,执行一段特定的代码
定时器实现:
- 可以使用sleep方法,设置睡眠时间,每到设定的时间段醒来,执行任务,这种方式比较原始
- Java类库中有一个定时器:java.util.Timer,可以直接用,但是开发中也使用较少,因为很多高级框架都是支持定时任务的
- Spring框架提供的SpringTask框架
实际实现定时器功能的还有其它框架和类库
通过Callable接口实现线程
实现线程方式:
- 继承Thread类,重写run()方法
- 实现Runnable接口,实现run()方法
- 实现Callable接口,实现call()方法
Callable接口优缺点:
- 可以获取线程的执行结果
- 获取结果通过get()方法,但get()方法会导致当前线程阻塞