LockSupport.parkNanos() 和 Thread.sleep() 的底层实现
--- ### **一、底层系统调用与实现机制** #### **1. `LockSupport.parkNanos()`** - **底层实现**: `LockSupport.parkNanos()` 最终通过 **`futex` 系统调用**(Fast Userspace Mutex)实现。 **`futex` 工作原理**: - **用户态自旋**:在极短等待时间(如纳秒级)内,优先在用户态自旋(无需进入内核)。 - **内核态挂起**:若等待时间较长或竞争激烈,通过 `futex(FUTEX_WAIT)` 将线程挂起,进入内核态休眠。 - **唤醒机制**:其他线程调用 `unpark()` 时,通过 `futex(FUTEX_WAKE)` 唤醒目标线程。 - **系统调用路径**:...阅读全文
