八股文疑问理解
文章平均质量分 76
早点睡 别熬夜
这个作者很懒,什么都没留下…
展开
-
CAS的原子性保证
比如上面例子中,**如果一个线程在执行i = i +1,如果在执行这段代码的过程中,在总线上发出了LOCK锁的信号,那么只有等待这段代码完全执行完毕之后,其他CPU才能从变量 i 所在的内存读取变量,然后进行相应的操作。它的核心思想是:**当CPU向内存写入数据时,如果发现操作的变量是共享变量,即在其他CPU中也存在该变量的副本,会发出信号通知其他CPU将该变量的缓存行置为无效状态,**因此当其他CPU需要读取这个变量时,发现自己缓存中缓存该变量的缓存是无效的,那么它就会从内存重新读取。转载 2023-03-17 09:53:34 · 1513 阅读 · 0 评论 -
CAS乐观锁
乐观锁 总是假设最好的情况,认为并发安全问题一定不会发生,所以不需要加锁。 每次去拿数据的时候都认为别人不会修改,所以不会上锁。 但是在最终更新数据的时候,会判断一下在此期间别人有没有更新过这个数据,如CAS算法的实现。 CAS算法主要分成3步: 获取共享数据的值,拷贝副本到工作内存,保存到值 current 对工作内存中的共享数据进行操作,获得更新后的值 next 执行CAS (compare and set)操作,先去主存获取当前共享变量的值value,与自己的旧值current比较 如果二原创 2023-03-15 09:37:05 · 224 阅读 · 0 评论 -
JVM虚拟机栈和堆的理解
JVM栈和堆转载 2023-03-14 15:42:50 · 201 阅读 · 0 评论 -
线程池运行原理
线程池原创 2023-03-07 16:14:54 · 276 阅读 · 0 评论