- 博客(11)
- 资源 (26)
- 收藏
- 关注
原创 CAS本身所具有的问题以及解决方法
CAS:全称:Compare And Swap(比较并且交换),用来解决多线程情况下锁带来的性能问题。过程就是拿旧值(O)和内存值(M)做比较,如果相等的话,用新值(N)覆盖内存值(M),如果不相等,就循环比较,直到相等为止。那么CAS本身存在什么问题呢?1、ABA问题:线程A把内存值改为N后,又再次改回M , 如果线程B(业务处理比较慢)此时去比对,发现内存值还是M,就会感觉自己的旧值O相等,线程B会以为内存值没有被改动过。解决这个问题可以使用版本戳的方式。2、CPU开销:线程B会
2022-03-16 22:36:37
1036
1
原创 理解抽象工厂模式
示意图:代码示例:https://download.youkuaiyun.com/download/wjwei1213/15760766
2021-03-13 09:52:41
99
原创 kotlin之DSL基础
fun main() { val person = person{ name="jim" age=30 address { city="苏州" street="城南街道" number=21 } } println(person)}fun person(block:Person.()->Unit):Person{ return.
2021-03-07 21:45:22
124
原创 JVM内存结构以及作用介绍
<div class="article_content" style="overflow: hidden; height: 2436px;"> <div id="content_views" class="htmledit_views clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/d...
2021-03-07 14:29:03
193
原创 lock和synchronized区别
1、lock是一个接口,而synchronized是java的一个关键字2、异常是否释放锁:synchronized在发生异常时候会自动释放占有的锁,因此不会出现死锁;而lock发生异常时候,不会主动释放占有的锁,必须手动unlock来释放锁,可能引起死锁的发生。(所以最好将同步代码块用try catch包起来,finally中写入unlock,避免死锁的发生。)3、是否知道获取锁Lock可以通过trylock来知道有没有获取锁,而synchronized不能;4、synchronized和loc
2021-03-01 07:59:18
460
1
SQL反模式(中文完整版).pdf
2015-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人