1、定时器
定时器起到间隔特定的时间执行某个程序的功能。java中的定时器Timer类位于java.util包下,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。定时器类Timer是线程安全的,多个线程可以共享单个Timer对象而无需进行外部同步,并且该类可以扩展到同时大量安排多个任务,与每个Timer对象相对应的是单个后台线程,用于顺序地执行所有计时器任务,如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。
当所有未处理的任务都已执行完毕后,计时器的任务执行线程会正常终止,并且成为垃圾回收的对象。但是这可能要很长时间后才发生。默认情况下,任务执行线程并不作为守护线程来运行,所以它能够阻止应用程序终止。如果调用者想要快速终止计时器的任务执行线程,那么调用者应该调用计时器的 cancel 方法。如果意外终止了计时器的任务执行线程,例如调用了它的 stop 方法,那么所有以后对该计时器安排任务的尝试都将导致 IllegalStateException,就好像调用了计时器的 cancel 方法一样。
每隔指定时间执行一段程序的实行方法:
1、使用sleep方法,使线程睡眠,每到指定的时间醒来执行任务。(原始定时器)
2、使用java写好的定时器类java.util.Timer。
2、线程
2.1 线程概述
线程是一个进程中的执行场景或执行单元,进程是一个应用程序。Java 虚拟机允许应用程序并发地运行多个执行线程。每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为