synchronized是非公平锁

synchronized · 2024-04-27 23:48:39

1、 2. synchronized不能保证公平性:这是正确的。 synchronized提供的锁是非公平锁,即多个线程同时获取锁时,锁的释放不是按照获取锁的顺序进行的,因此无法保证公平性。 3. synchronized和Lock都是非抢占式的:这是正确的。

2、 对于Synchronized而言,也是一种非公平锁。 由于其并不像ReentrantLock是通过AQS的来实现线程调度,所以并没有任何办法使其变成公平锁。

3、 不公平快:请求锁的线程 可能在其前面排列的 休眠线程恢复前 拿到锁, 提高并发 的性能。

4、 对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。 对于Synchronized而言,也是一种非公平锁。 由于其并不像ReentrantLock是通过AQS的来实现线程调度,所以并没有任何办法使其变成公平锁。

文章推荐:

synchronized什么时候释放锁

synchronized类锁和对象锁

synchronized底层加锁机制

synchronized锁失效怎么解决

synchronized为什么使用偏向锁

synchronized普通锁和静态锁

synchronized在哪里加锁