![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
weixin_47875413
这个作者很懒,什么都没留下…
展开
-
2、悲观锁
悲观锁是一种悲观思想,即认为写多读少,遇到并发写的可能性高,每次去拿数据的时候都认为其他线程会修改,所以每次读写数据都会认为其他线程会修改,所以每次读写数据时都会上锁。其他线程想要读写这个数据时,会被这个线程block,直到这个线程释放锁然后其他线程获取到锁。Java中的悲观锁:synchronized修饰的方法和方法块、ReentrantLock。如上图所示,只能有一个线程进行读操作或者写操作,其他线程的读写操作均不能进行。原创 2022-12-27 16:42:16 · 97 阅读 · 1 评论 -
1、乐观锁
乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。Java中的乐观锁:CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行CAS操作。如上图所示,可以同时进行读操作,读的时候其他线程不能进行写操作原创 2022-12-27 16:33:06 · 78 阅读 · 0 评论 -
JAVA 中各种锁 什么是乐观锁
JAVA 中各种锁 什么是乐观锁?原创 2022-12-27 15:53:48 · 349 阅读 · 0 评论