
Java并发编程
Java并发编程的相关文章会集中放到此处,方便查看。
LupuX
种一棵树最好的时间是10年前,其次是现在。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java并发基础 - CAS(Compare and swap)
1. Java中的原子操作 在java中,下列操作是原子操作: all assignments of primitive types except for long and double,除long和double的原始类型赋值 all assignments of references,应用类型赋值 all operations of java.concurrent.Atomic* classe...原创 2019-07-31 19:01:47 · 311 阅读 · 0 评论 -
Java并发基础 - CAS之AtomicStampedReference、AtomicMarkableReference
在前一篇文章Java并发基础 - CAS里提到了CAS的缺点中有一条是存在ABA问题,JUC中有类解决了此问题。如AtomicStampedReference、AtomicMarkableReference。此处重点看一下AtomicStampedReference的实现方式。 1. ABA问题测试代码 public class ABATest { private static Atomi...原创 2019-08-01 11:24:09 · 308 阅读 · 0 评论 -
Java并发基础 - AbstractQueuedSynchronizer
AbstractQueuedSynchronizer 1. 什么是AQS? 抽象的队列式的同步器,AQS定义了一套多线程访问 共享资源的同步器框架,许多同步类实现都依赖于它,如常用的 ReentrantLock/Semaphore/CountDownLatch。 2. 此类的重要信息 static final class Node Wait queue node class,即等待队列的节点类。...原创 2019-07-30 19:35:09 · 199 阅读 · 0 评论 -
Java并发基础 - ReentrantLock
主要内容: ReentrantLock Demo示例 公平锁和非公平锁的详细实现 公平和非公平的定义 ReentrantLock使用场景 和synchronized的简单比较 一、 ReentrantLock 1. 先看Demo示例,再细细道来原理: @Slf4j public class LockDemo { //ReentrantLock无参构造方法,sync = new Nonf...原创 2019-07-10 21:44:51 · 267 阅读 · 0 评论 -
Java并发工具类 - CountDownLatch、CyclicBarrier、Semaphore
1. CountDownLatch 实现类似计数器的功能,将一个任务分为多个任务进行执行。 public class MyCountDownLatch { //要处理的任务 -倒计时门栓,任务是独立的 class MyTask implements Callable<String> { @Setter private String na...原创 2019-07-30 18:51:41 · 260 阅读 · 0 评论 -
Java并发工具类 - ThreadLocal
1. ThreadLocal概念 ThreadLocal用于线程间的数据隔离。应用场合,最适合的是按线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。 ThreadLocal是一个本地线程副本变量工具类。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对...原创 2019-08-04 14:04:58 · 514 阅读 · 0 评论