实现接口
通过实现接口的方式,创建线程执行的内容。由线程 Thread 或线程池 executor 执行
Runnable:基础接口,定义了 run 方法,用于执行线程内容
Callable:定义了 call 方法,用于执行线程内容,submit 时会返回 Future
Future:用于接收线程执行的结果,定义了 cancel 方法,用于取消线程执行
FutureTask:FutureTask 是实现的 RunnableFuture 接口的,而 RunnableFuture 接口同时继承了 Runnable 接口和 Future 接口。因为 Feature 中的接口实现较复杂,所以 JDK 提供了一个 FutureTask 类来供我们使用。FutureTask能够在高并发环境下确保任务只执行一次。
线程组和优先级
每个线程都属于某个线程组,线程组可以包含多个线程。
线程组可以设置优先级,线程也可以设置自己的优先级,当线程优先级高于线程组优先级时,以线程组优先级为准。
线程的优先级并不一定代表线程的执行顺序,具体执行顺序由系统的调度算法决定。
线程状态
线程状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED
