并发情况如何实现加锁来保证数据一致性? | 京东云技术团队
原文中文,约7100字,阅读约需17分钟。发表于: 。ReentrantLock(可重入锁),指的是一个线程再次对已持有的锁保护的临界资源时,重入请求将会成功。:如果被请求的共享资源空闲,那么就当前请求资源的线程设置为有效的工作线程,将共享资源通过CAS设置为锁定状态;如果共享资源被占用,就采用一定的阻塞等待唤醒机制(CLH变体的FIFO双端队列)来保证锁分配。:无论是公平锁还是非公平锁的情况,加锁过程会利用一个state值。
本文介绍了单体架构下的锁实现方案,包括全局锁和细粒度锁。同时讨论了乐观锁和细粒度的Synchronized全局锁的实现方式。此外,还介绍了分布式架构下的锁实现方案,包括Redis和Zookeeper。最后,提出了分布式锁性能优化的方法。