合集-Java
摘要:目录并发容器类并发 MapConcurrentMapConcurrentHashMapConcurrentSkipListMap并发 Queue并发 Set阻塞队列BlockingQueue 的操作方法BlockingQueue 的实现类ArrayBlockingQueueLinkedBlockin
阅读全文
摘要:目录并发编程模型的两个关键问题Java 内存模型共享变量Java 内存模型的抽象结构volatile 关键字如何保证变量的可见性?如何禁止指令重排序?JMM 与 Java 运行时内存区域的区别区别联系总结JMM 与重排序为什么指令重排序可以提高性能?重排序有哪几种?JMM 与顺序一致性模型什么是顺序
阅读全文
摘要:目录线程同步条件对象synchronized 关键字监视器volatile 线程同步 条件对象 通常线程进入临界区,却发现需要满足某一个条件后,才能继续执行,这时,就需要使用一个条件对象,来管理那些已经获得了一个锁,但是,却不做有用工作的线程。这些条件对象经常被称为条件变量(Conditional
阅读全文
摘要:目录同步器Semaphore原理示例Exchanger总结CountDownLatchCyclicBarrier原理应用场景示例Phaser示例 同步器 JUC 包下的工具类除了 locks,还包含其他的工具类,如:Semaphore、CountDownLatch、CyclicBarrier、Exc
阅读全文
摘要:目录Java 对象内存结构Java 对象在内存中的布局Java 对象头MonitorJava 中的锁状态无锁状态偏向锁轻量级锁(自旋锁)重量级锁锁的优缺点对比锁升级场景场景1: 经常只有某一个线程来加锁。场景2: 有线程来参与锁的竞争,但是获取锁的冲突时间很短场景3: 有大量的线程参与锁的竞争,冲突
阅读全文