前言说到CAS(CompareAndSwap),不得不先说一说悲观锁和乐观锁,因为CAS是乐观锁思想的一种实现。悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用完之后释放锁,其他的线程才能拿到锁,进而拿到资源进行操作。java中的synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁:总是很乐观认为,自己拿到数据操作的时候,没有
分类:
其他好文 时间:
2020-01-03 22:56:36
阅读次数:
75
一、锁 1、锁的定义 锁即是一种用来协调多线程或进程并发使用同一共享资源的机制 2、锁的分类 从性能上分类:乐观锁和悲观锁 从数据库操作类型上分类:读锁和写锁 从操作粒度上分类:表锁和行锁 2.1 从性能上分类 2.1.1 乐观锁 乐观锁顾名思义就是操作的时候很乐观,认为操作不会产生并发问题(不会有 ...
分类:
数据库 时间:
2020-01-03 19:48:11
阅读次数:
158
目录技术一面(算法)技术二面技术三面JAVA开发技术面试中可能问到的问题面试注意点一、字节跳动技术一面(算法)Java的16进制与字符串的相互转换函数JAVA时间格式化处理将毫秒转化为日期文本的倒序输出判断一个数字是奇数还是偶数用Hibernate实现分页35选7彩票程序获取GMT8时间中文乱码转换小标签Big5字与Unicode的互换取得服务器当前的各种具体时间用半角的特殊符号代替全角的特殊符号
分类:
编程语言 时间:
2019-12-31 01:27:06
阅读次数:
111
锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。锁是解决并发冲突的重要工具。在开发中我们会用到很多类型的锁,每种锁都有其自身的特点和适用范围。需要深刻理解锁的理念和区别,才能正确、合理地使用锁。常用锁类型乐观锁与悲观锁悲观锁对并发冲突持悲观态度,先取锁后访问数据,能够较大程度确保数据安全性。而乐观锁认为数据冲突的概率比较低,可以尽
分类:
编程语言 时间:
2019-12-27 22:08:08
阅读次数:
182
概念 乐观锁 总是假设最好的情况,认为竞争总是不存在,每次拿数据的时候都认为不会被修改,因此不会先上锁,在最后更新的时候比较数据有无更新,可通过版本号或CAS实现。 悲观锁 总是假设最坏的情况,认为竞争总是存在,每次拿数据的时候都认为会被修改,因此每次都会先上锁。其他线程阻塞等待释放锁。我们之前使用 ...
分类:
其他好文 时间:
2019-12-26 09:46:06
阅读次数:
110
JMeter测试工具 需要创建一个心的工程; 添加一个线程组—这里面设置秒级并发数; 添加一个请求—这里设置压力测试的接口;参数使用: 可以从csv文件中获取数据 请求头管理—添加需要修改的请求头信息; CSV文件—可以将请求的参数,以变量的形式,从csv文件中获取,模拟多种请求数据; 具体怎么用, ...
分类:
其他好文 时间:
2019-12-21 20:36:20
阅读次数:
91
[TOC] 一、何为乐观锁与悲观锁 二、悲观锁 适用于写较多,保证数据安全 三、乐观锁 适用于读较多,保证并发吞吐量 四、两种锁的使用场景 ...
分类:
其他好文 时间:
2019-12-16 11:30:16
阅读次数:
93
想象一下你马上出发要去一家餐厅吃饭,但是你去之前不确定会不会满桌,你又不想排号。这时的你会有两个选择,如果你是个乐观的人,内心戏可能会是「管他的,去了再说,大不了没座就回来」。反之,如果你是一个悲观的人,可能会先打个电话预约一下,先确认下肯定有座,同时交点定金让餐厅预留好这个座位,这样就可以直接去了 ...
分类:
其他好文 时间:
2019-12-14 16:05:04
阅读次数:
124
概述 无论是悲观锁还是乐观锁,都是人们定义出来的概念,是一种读取和修改数据的并发访问策略,由应用和业务需求来确定的。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernate、tair等都有类似的概念。所以,不要把乐观锁和悲观锁狭义的理解为DBMS中的概念,更不要把他们和 ...
分类:
数据库 时间:
2019-12-13 19:31:31
阅读次数:
104
何为乐观锁,悲观锁 顾名思义,乐观就是对于事情事务都是往好的一方面去想去发展. 悲观就是对于事情事务都是往坏的一方面去想去发展. 且两者各有优缺点. 悲观锁 共享资源每次只给一个线程使用,其他线程阻塞,用完之后再把资源转让给其他线程. 每次拿数据的时候都认为别人会修改,所以在每次那数据的时候都会上锁 ...
分类:
其他好文 时间:
2019-12-13 19:28:37
阅读次数:
91