
并发
文章平均质量分 79
这天不刮风
没有简述
展开
-
volatile与synchronized的比较
参考Java多线程之volatile 与 synchronized 的比较已读懂,基本理解其中的意思,感谢博主。理解该篇知识点需要Java内存模型基础。 为什么volatile是轻量级锁,不能用来保持同步。因为volatile通过让线程对标记变量进行连续、有序的read、load、use等操作,使得线程对于变量的改变使得其他线程可见(详见《深入理解Jvm》书P372)。它不是通过阻塞线程来实现线...原创 2019-03-30 17:18:33 · 168 阅读 · 0 评论 -
锁的复习:乐观锁、悲观锁、自旋锁
乐观锁和悲观锁 悲观锁:总是假设最坏的情况,每次获取数据时都会认为有其他线程对该数据进行修改,所以需要阻塞其他线程,直到自己释放锁。synchronized关键字就是典例。 悲观锁机制存在以下问题: 在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 一个线程持有锁会导致其它所有需要此锁的线程挂起。 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置...原创 2019-05-21 16:35:18 · 783 阅读 · 0 评论