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 · 246 阅读 · 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 · 248 阅读 · 0 评论 -
Java并发基础 - AbstractQueuedSynchronizer
AbstractQueuedSynchronizer1. 什么是AQS?抽象的队列式的同步器,AQS定义了一套多线程访问 共享资源的同步器框架,许多同步类实现都依赖于它,如常用的 ReentrantLock/Semaphore/CountDownLatch。2. 此类的重要信息static final class Node Wait queue node class,即等待队列的节点类。...原创 2019-07-30 19:35:09 · 157 阅读 · 0 评论 -
Java并发基础 - ReentrantLock
主要内容:ReentrantLock Demo示例公平锁和非公平锁的详细实现公平和非公平的定义ReentrantLock使用场景和synchronized的简单比较一、 ReentrantLock1. 先看Demo示例,再细细道来原理:@Slf4jpublic class LockDemo { //ReentrantLock无参构造方法,sync = new Nonf...原创 2019-07-10 21:44:51 · 200 阅读 · 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 · 195 阅读 · 0 评论 -
Java并发工具类 - ThreadLocal
1. ThreadLocal概念ThreadLocal用于线程间的数据隔离。应用场合,最适合的是按线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。ThreadLocal是一个本地线程副本变量工具类。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对...原创 2019-08-04 14:04:58 · 385 阅读 · 0 评论