Java多线程

default

实现接口

通过实现接口的方式,创建线程执行的内容。由线程 Thread 或线程池 executor 执行

Runnable:基础接口,定义了 run 方法,用于执行线程内容

Callable:定义了 call 方法,用于执行线程内容,submit 时会返回 Future 对象,通过 Future 的 get 方法获取线程执行结果

Future:用于接收线程执行的结果,定义了 cancel 方法,用于取消线程执行

FutureTask:FutureTask 是实现的 RunnableFuture 接口的,而 RunnableFuture 接口同时继承了 Runnable 接口和 Future 接口。因为 Feature 中的接口实现较复杂,所以 JDK 提供了一个 FutureTask 类来供我们使用。FutureTask能够在高并发环境下确保任务只执行一次。

线程组和优先级

每个线程都属于某个线程组,线程组可以包含多个线程。

线程组可以设置优先级,线程也可以设置自己的优先级,当线程优先级高于线程组优先级时,以线程组优先级为准。

线程的优先级并不一定代表线程的执行顺序,具体执行顺序由系统的调度算法决定。

线程状态

线程状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED

图 11

Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……