1. 定时器
在 JDK 的
java.util
包中, 提供了Timer
类, 可以定时执行特定的任务.与每个 Timer 对象相对应的是单个后台线程, 用于顺序地执行所有计时器任务.
TimerTask
类表示定时器执行的某一任务.
1.1. Timer 类常用方法
1.1.1. Timer(boolean isDaemon) 构造器
定义:
public Timer(boolean isDaemon)
作用:
创建一个新计时器, 可以指定其相关线程作为后台线程执行.
1.1.2. schedule(TimerTask task, long delay) 方法
定义:
public void schedule(TimerTask task, long delay)
作用:
安排在指定延迟后执行指定的任务.参数:
- task - 所要安排的任务;
- delay - 执行任务前的延迟时间, 单位是毫秒.
1.1.3. schedule(TimerTask task, long delay, long period) 方法
定义:
public void schedule(TimerTask task, long delay, long period)
作用:
安排指定任务从指定的延迟后开始进行重复的固定延迟执行.
以近似固定的时间间隔(由指定的周期分隔)进行后续执行.参数:
- task - 所要安排的任务.
- delay - 执行任务前的延迟时间, 单位是毫秒.
- period - 执行各后续任务之间的时间间隔, 单位是毫秒.
1.1.4. cancel() 方法
- 作用:
终止此计时器, 丢弃所有当前已安排的任务.
1.2. TimerTask 类的方法
1.2.1. run() 方法
TimerTask
是抽象类, 因此需要自定义子类进行继承实现.- 只有一个抽象方法, 就是
run()
方法, 表示此计时器任务需要执行的操作.
2. 线程组
ThreadGroup
类表示线程组, 可以对一组线程进行集中管理;用户在创建线程对象时, 可以通过构造器指定其所属的线程组.
new Thread(ThreadGroup group, String name);
如果 A 线程创建了 B 线程, 如果没有设置 B 线程的分组,
那么 B 线程就会加入到 A 线程的线程组当中.一旦线程加入某个线程组, 该线程就一直存在于该线程组中,
直到线程死亡为止, 不能中途修改线程的分组.当 Java 程序运行时, JVM 会创建名为
main
的线程组,
在默认情况下, 所有的线程都在该线程组下.