摘要:
适用性 缓存在很多场景下都是相当有用的。例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存 Guava Cache与ConcurrentMap很相似,但也不完全一样。最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地, 阅读全文
摘要:
公平和非公平锁 公平锁:是指多个线程按照申请的顺序来获取值。在并发环境中,每一个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个就占有锁,否者就会加入到等待队列中,以后会按照 FIFO 的规则获取锁 非公平锁:是指多个线程获取值的顺序并不是按照申请锁的顺序,有可能后 阅读全文
摘要:
写入时复制(CopyOnWrite) 写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种优化策略。其核心思想是,如果有多个调用者(Callers)同时要求相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时 阅读全文
摘要:
ArrayList的线程安全故障 /** * 发现报java.util.ConcurrentModificationException */ public class ContainerDemo { public static void main(String[] args) { List<Inte 阅读全文
摘要:
原子引用 public class AtomicReferenceDemo { public static void main(String[] args) { User cuzz = new User("cuzz", 18); User faker = new User("faker", 20); 阅读全文
摘要:
原子类使用 public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(666); // 获取真实值,并替换为相应的值 boolean 阅读全文