他线程想要读写这个数据时,会被这个线程block,直到这个线程释放锁然后其他线程获取到锁 1. 2. 3. 4. 5. 6. 7. 8. 四、自旋锁 应用 CAS 实现 为了让线程等待,我们只须让线程执行一个忙循环 优点 避免了线程切换的开销,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给Java虚拟机的并发性能带来了...
1.乐观锁 java中乐观锁是一种乐观思想,总认为资源和数据不会被修改,并不会对数据进行上锁,但进行写入操作的时会判断数据是否被修改。 2.悲观锁 java中悲观锁是一种悲观思想,总认为会出现最坏的情况,会在持有数据的时将资源或数据锁住,导致其他线程需要请求资源时会造成阻塞。 3.自旋锁 java中自旋锁是指当一...
独享锁/共享锁 独享锁是指该锁一次只能被一个线程所持有。 共享锁是指该锁可被多个线程所持有。 互斥锁/读写锁 上面讲的独享锁/共享锁就是一种广义的说法,互斥锁/读写锁就是具体的实现。 互斥锁在Java中的具体实现就是ReentrantLock,读写锁在Java中的具体实现就是ReadWriteLock。 乐观锁/悲观锁 乐观锁与悲...