ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get操作的时候,它是否也使用了锁来保护?)。
ConcurrentMap
提供其他原子 put...
并发编程之可见性、有序性和原子性的理解
并发处理的广泛应用使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。
在学习并发编程,很多概念需要理解透彻,理解清楚。
其中有三个基本的关注点:
安全性,也就是正确性,指的是程序灾并发情况下执行的结果和预期一致
活跃性,比如死锁,活锁
性能,减少上下文切换,家少内核调用,较少一致性流量等等
安全性问题是首要解决的问题,保证程...
大话Future模式
说在前面的话
什么是Future 模式呢?对于多线程,如果线程A要等待线程B的结果,那么线程A没必要等待B,直到B有结果,可以先拿到一个未来的Future,等B有结果是再取真实的结果。其实这个模式用的很多,比如浏览器下载图片的时候,刚开始是不是通过模糊的图片来代替最后的图片,等下载图片的线程下载完图片后在替换。
思想
实例
Main:系统启动,调用Client发出请求
package com.ifcoding.future;
pub...