面试时,我说cas和double check lock差不多,给面试官整乐了
java吧
全部回复
仅看楼主
level 6
我也不知道他乐啥,我想都是先记录,然后做下一步的操作的时候然后再判断下跟之前的记录是不是一样,如果不一样说明被其他线程动过了,就不需要进行下一步操作了。只不过一个的操作是加不加锁,
2023年12月11日 15点12分 1
level 6
越想越气
2023年12月11日 15点12分 2
level 6
不知道在笑什么
2023年12月11日 15点12分 3
不用理会那些故作高深的人,如果在乎,只会徒增烦恼。
2024年01月13日 10点01分
level 13
你到现在还不知道问题是什么其实更好笑
2023年12月11日 16点12分 4
level 1
你到现在还不知道问题是什么其实更好笑
2023年12月14日 03点12分 5
@熟用标点💯 培训班出来就算了,学的狗屁不是还好意思来这里乱叫唤?几个罵啊,这么牛逼?
2023年12月16日 08点12分
@熟用标点💯 确实整乐了,你看看有人可以给你解答吗?随便找个培训班,学了点crud,看着像个人,脑子就是没东西啊,外包要你吗?嘻嘻
2023年12月16日 10点12分
@麻椒有点辣 不会还没找到工作吧?不会连外包都不要吧?不会吧不会吧?
2023年12月16日 08点12分
弱自 说的跟你知道一样
2023年12月16日 08点12分
level 1
不用理会
2023年12月16日 09点12分 6
level 4
不用理会那些故作高深的人,如果在乎,只会徒增烦恼。
2023年12月16日 10点12分 7
level 3
cas悲观锁,lock乐观锁。说他们的区别吧
2023年12月16日 10点12分 8
乐观:不撞南墙不回头,悲观:怎么这么难啊,躺平算了
2023年12月16日 10点12分
level 9
双重校验,第一次判空和第二次判空作用分别是什么
2023年12月16日 16点12分 9
都是避免重复初始化 加锁只是排队执行 第二次没有判断的话还是会初始化的
2023年12月17日 02点12分
@Rinly119 第一次判空,除了避免重复创建实例,还有一个作用:高并发情况下锁升级为重量级锁非常消耗性能,所以在锁之前先判断一下,如果已经创建了实例,其他线程就没必要去尝试加锁。第一次和第二次还是有点区别的
2023年12月17日 02点12分
level 1
你要跟我说罗马和桶装水差不多那我也得乐[笑眼]
有内海 有海峡 是罗马[笑眼]
2023年12月16日 17点12分 10
level 8
应用场景不一样,cas无锁同步,double check lock 还是基于锁
2023年12月16日 17点12分 11
level 8
笑你很正常,理解太片面,cas是底层系统的原子操作,怎么能和双重校验锁混为一谈,而且普通cas并不能保证没有被其他线程动过,有aba的问题
2023年12月16日 18点12分 12
level 1
很好理解啊[滑稽],我让你写双重检验的源码,你会写,让你写cas的源码,你会吗?
2023年12月16日 23点12分 13
level 7
[呵呵]原地并发修改整个业界无法两种方案:乐观锁和队列。 cas是乐观锁在cpu层级的一种方案,都是比较当前值与预期值是否一致,然后再决定是否修改的思路。队列就不一样了,是利用某种机制,保证一时只能有一个执行者进行修改,包括内存锁、分布式锁、悲观锁,队列、actor、mq等等。double check 属于后者,cas属于前者。
2023年12月17日 00点12分 14
说跟队列或者mq也不严谨吧,多消费者场景就不适合,有并发问题
2023年12月17日 02点12分
level 9
如果你面的是10k的工作,那面试官确实不礼貌。如果你面的是20k的工作,那我也笑你
2023年12月17日 00点12分 15
面10k我也想笑[喷]
2023年12月17日 07点12分
1 2 尾页