synchronized 公平还是非公平
时间: 2023-07-20 21:43:49 浏览: 39
synchronized枷锁实例
synchronized 关键字默认情况下是非公平的。在非公平模式下,当一个线程释放锁时,不一定是等待时间最长的线程获得锁,而是由 JVM 内部的线程调度机制来决定下一个获得锁的线程。而在公平模式下,线程获得锁的顺序是按照线程等待的先后顺序来决定的,即等待时间最长的线程优先获得锁。可以通过在使用 synchronized 关键字时添加额外参数来指定为公平锁,例如:
```
synchronized(lockObject, true) {
// 同步代码块
}
```
阅读全文