![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA并发
文章平均质量分 92
HxxxxxxxU
我就是我 不一样的花火
展开
-
JDK1.8中的AtomicInteger源码
关于JDK1.7中,AtomicInteger中的incrementAndGet方法的内部实现为:public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, nex...原创 2018-03-15 10:33:52 · 1936 阅读 · 0 评论 -
JDK1.8源码分析之并发SynchronousQueue(一)
一、前言 本篇是在分析Executors源码时,发现JUC集合框架中的一个重要类没有分析,SynchronousQueue,该类在线程池中的作用是非常明显的,所以很有必要单独拿出来分析一番,这对于之后理解线程池有很有好处,SynchronousQueue是一种阻塞队列,其中每个插入操作必须等待另一个线程的对应移除操作 ,反之亦然。同步队列没有任何内部容量,甚至连一个队列的容量都没有。二、Sync...原创 2018-03-18 17:18:56 · 294 阅读 · 0 评论 -
JAVA中线程同步的方法(7种)汇总
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。一、同步方法 即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, ...原创 2018-03-20 10:23:57 · 129 阅读 · 0 评论 -
JAVA并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue
参考于//blog.csdn.net/javazejian/article/details/77410889ArrayBlockingQueue的实现原理剖析ArrayBlockingQueue原理概要ArrayBlockingQueue的内部是通过一个可重入锁ReentrantLock和两个Condition条件对象来实现阻塞,这里先看看其内部成员变量public class ArrayBloc...原创 2018-03-14 10:31:10 · 448 阅读 · 0 评论 -
Java并发容器:ConcurrentLinkedQueue
原文出处http://cmsblogs.com/ 『chenssy』要实现一个线程安全的队列有两种方式:阻塞和非阻塞。阻塞队列无非就是锁的应用,而非阻塞则是CAS算法的应用。下面我们就开始一个非阻塞算法的研究:CoucurrentLinkedQueue。ConcurrentLinkedQueue是一个基于链接节点的无边界的线程安全队列,它采用FIFO原则对元素进行排序。采用“wait-free”算...转载 2018-03-20 23:35:20 · 1040 阅读 · 0 评论 -
Java多线程总结
参考: http://www.cnblogs.com/wxd0108/p/5479442.html http://blog.csdn.net/evankaka/article/details/44153709 https://blog.csdn.net/u012156116/article/details/793908641.线程与进程的区别定义:进程是具有一定独立功能的程序关于某个数据集合上...转载 2018-04-12 11:26:53 · 96 阅读 · 0 评论 -
ConcurrentHashMap的JDK1.7和JDK1.8的实现
JDK1.7 ConcurrentHashMap(支持并发)ConcurrentHashMap 是一个 Segment 数组,Segment 通过继承 ReentrantLock 来进行加锁,所以每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 Segment 是线程安全的,也就实现了全局的线程安全。ConcurrentHashMap 有 16 个 Segments,所以理论上,最...原创 2018-05-30 20:27:44 · 859 阅读 · 0 评论