乐观锁
就像它的名字一样,对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将比较-替换这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试逻辑。
悲观锁
还是像它的名字一样,对于并发间操作产生的线程安全问题持悲观状态,悲观锁认为竞争总是会发生,因此每次对某资源进行操作时,都会持有一个独占的锁,就像synchronized,不管三七二十一,直接上了锁就操作资源了。
相关问题
-
Java 中堆和栈有什么不同?
1年前 0 126
-
启动线程方法 start()和 run()有什么区别?
1年前 0 305
-
怎么控制同一时间只有 3 个线程运行?
1年前 0 372
-
Java 中用到了什么线程调度算法?
1年前 0 151
-
一个线程的生命周期有哪几种状态?它们之间如何流转的?
1年前 0 283
-
什么是守护线程?有什么用?
1年前 0 257
-
什么是原子性、可见性、有序性?
1年前 0 195
-
线程和进程的区别是什么?
1年前 0 312
-
Jdk 中排查多线程问题用什么命令?
1年前 0 160
-
什么是活锁、饥饿、无锁、死锁?
1年前 0 174
-
不可变对象对多线程有什么帮助?
1年前 0 179
-
什么是重入锁?
1年前 0 252
-
ReadWriteLock 有什么用?
1年前 0 170
-
一个线程运行时发生异常会怎样?
1年前 0 339
-
新建 T1、T2、T3 三个线程,如何保证它们按顺序执行?
1年前 0 327
-
说几个常用的 Lock 接口实现锁。
1年前 0 177
-
Synchronized 有哪几种用法?
1年前 0 347
-
Java 内存模型是什么,哪些区域是线程共享的,哪些是不共享的?
1年前 0 354
-
什么是 CAS 算法?在多线程中有哪些应用。
1年前 0 290
-
线程数过多会造成什么异常?
1年前 0 143