1.介绍
Unsafe类提供了直接操控内存和底层线程的工作。Unsafe类是在sun.misc包下,不属于Java标准。但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty、Cassandra、Hadoop、Kafka等。Unsafe类在提升Java运行效率,增强Java语言底层操作能力方面起了很大的作用。
2.线程的挂起与恢复
2.1 线程挂起
阻塞当前线程
public native void park(boolean isAbsolute,long time)
- 当isAbsolute == false,表示不是绝对时间,即time=0;
- 当isAbsolute == true,表示是绝对时间,当阻塞的线程经过time时间后,线程阻塞自动消除。
- 当调用park方法后,线程阻塞。当别的线程调用unpark或者线程中断、或者超时阻塞线程将返回。
- 如果在调用park方法之前已经调用了unpark方法,那么线程不会阻塞。
park可以相应中断,不是抛出异常,而是直接取消阻塞。
<