并发
-
【每日阅读】2020年12月27日-CountDownLatch和CyclicBarrier
CountDownLatch 例如主线程要等待2个子线程执行完任务后再执行,那就可以创建一个初始值为2的CountDownLatch,在主线程执行等待方法await()就会等待Co…
-
【每日阅读】2020年12月24日-信号量
信号量是在管程发明之前15年被发明出来的东西。信号量用于解决在控制数量的情况下发文同一资源。 例如最多允许5个线程获取一个资源,则在初始化时将信号量初始为5,当多一个线程使用资源时…
-
【每日阅读】2020年12月23日-dubbo如何使用Lock、Condition
dubbo使用方式如下(简化过的代码):
-
【每日阅读】2020年12月22日-Java并发包中的管程
就是Lock和Condition啦! Lock就是控制互斥的,Condition用于控制同步。 这两个类组合使用,拥有和原生的synchronized、wait、notify、no…
-
【每日阅读】2020年12月21日-管程——互斥、同步的通用解决方案
如何实现互斥 想要实现互斥,那么就利用管程的入口等待队列,控制一次只能有一个线程进入。 如何实现同步 那么就可以利用管程内部的条件变量等待队列,每个需要满足的条件对应一个等待队列,…
-
【每日阅读】2020年11月24日-Java如何解决原子性
Java解决原子性根本方法是锁,原生语法是synchronized,这个使用时要注意的是加锁要在同一个对象上,否则加了锁也相当于没有加锁。
-
【每日阅读】2020年11月23日-Java如何解决了有序性和可见性
昨天的文章说的是高并发都会遇到的问题,今天说说Java是如何解决的。 一句话说,就是Java是通过内存模型解决有序性和可见性的。解决这两个问题需要禁用缓存以及禁用编译优化,内存模型…
-
【每日阅读】2020年11月22日-并发编程的三大问题
继续看并发的课程文章。 今天了解了并发三大问题都是如何出现的。 可见性 多核CPU执行程序时,多个线程在不同CPU核心上执行,每个核都有自己的缓存。当线程修改变量后,并不一定会及时…
-
【每日阅读】2020年11月21日-如何才能学好并发编程?
这是我在极客学院买的一门课程的第一课。确实有收获。 在以前我觉得学习任何技术就是看如何使用,理论是辅助性的。看了这篇文章后觉得理论更重要,从理论可以看到技术的整体而不仅仅知识某一个…
-
【每日阅读】2020年10月27日-JVM锁偏向
《Java高并发程序设计 第2版》169页。 锁偏向指的是JVM针对加锁操作的一种优化手段。 它的核心思想是:如果一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求同一个锁…