Quguang's Blog

当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人。

《Java并发编程实战》-5-其他并发模型(未完待续)


《Java并发编程实战》-4-案例分析(未完待续)


《Java并发编程实战》-3-并发设计模式(未完待续)


《Java并发编程实战》-2-并发工具类(下)

前面我们多次提到一个累加器的例子,示例代码如下。在这个例子中,add10K() 这个方法不是线程安全的,问题就出在变量 count 的可见性和 count+=1 的原子性上。可见性问题可以用 volatile 来解决,而原子性问题我们前面一直都是采用的互斥锁方案。


《Java并发编程实战》-2-并发工具类(上)

在前面《08 | 管程:并发编程的万能钥 匙》中我们提到过在并发编程领域,有 两大核心问题:一个是互斥,即同一时刻只允许一个线程 访问共享资源;另一个是同步,即线程之间如何通信、协作。这两大问题,管程都是能够解决 的。Java SDK 并发包通过 Lock 和 Condition 两个接口来实现管程,其中 Lock 用于解决互斥 问题,Condition 用于解决同步问题。