摘要:
详解synchronized与Lock的区别与使用 该博客转载自淳安郭富城的详解synchronized与Lock的区别与使用 1. 引言: 昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和 阅读全文
摘要:
Java实现生产者和消费者的5种方式 该博客转载自掘金的Java实现生产者和消费者的5种方式 1. 前言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满 阅读全文
摘要:
Java并发编程:阻塞队列 该博客转载自Matrix海 子的Java并发编程:阻塞队列 Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工 阅读全文
摘要:
Java 中的阻塞队列 该博客转载自方腾飞的聊聊并发(七)——Java 中的阻塞队列 1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队 阅读全文
摘要:
Java并发之CyclicBarrier 该博客转载自巴蜀码哥 ** 的Java并发之CyclicBarrier** barrier(屏障)与互斥量、读写锁、自旋锁不同,它不是用来保护临界区的。相反,它跟条件变量一样,是用来协同多线程一起工作的。 条件变量是多线程间传递状态的改变来达到协同 阅读全文
摘要:
CountDownLatch详解 该博客转载自爱宝贝丶 的CountDownLatch详解 1. 简介 CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDownLatch的作用 阅读全文
摘要:
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 该博客转载自Matrix海 子的Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程 阅读全文
摘要:
Java多线程中读写锁ReadWriteLock的使用 该博客转载自lavimer的Java多线程中读写锁ReadWriteLock的使用 1. 概念 读写锁分为读锁和写锁,多个读锁之间是不需要互斥的(读操作不会改变数据,如果上了锁,反而会影响效率),写锁和写锁之间需要互斥,也就是说,如果只是 阅读全文
摘要:
不可不说的Java“锁”事 **该博客转载自美团技术团队 的不可不说的Java“锁”事 ** 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁 阅读全文
摘要:
高并发下的Java数据结构(List、Set、Map、Queue) 本文转载至薛勤的博客的高并发下的Java数据结构(List、Set、Map、Queue) 由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下正常工作,这是因为这些数据结构不是线程安全的。本节 阅读全文
摘要:
Java CAS操作的ABA问题 本文转载至ksfzhaohui的Java CAS操作的ABA问题 1. CAS介绍 比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性 阅读全文
摘要:
Java CAS 原理剖析 本文转载来自卡巴拉的树的Java CAS 原理剖析 在Java并发中,我们最初接触的应该就是synchronized关键字了,但是synchronized属于重量级锁,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能 阅读全文
摘要:
Java并发编程:volatile关键字解析 本文转载来自于https://www.cnblogs.com/dolphin0520/Matrix海 子的Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的 阅读全文