博客专栏  >  编程语言   >  深入分析 Java 并发

深入分析 Java 并发

Java 并发源码分析,知其然,知其所以然

关注
1 已关注
27篇博文
  • Java 线程池 --- ThreadPoolExecutor源码分析

    在多线程编程中,或多或少都听过或者使用过线程池,合理利用线程池能够带来三个好处。 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等...

    2018-01-23 21:13
    107
  • Java 多线程 --- FutureTask 源码分析

    在多线程编程中,创建线程可以直接继承Thread,也可以实现Runnable接口。但是这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用...

    2018-01-18 20:07
    99
  • Java 并发 --- ConcurrentSkipListMap源码分析

    在学习ConcurrentSkipListMap 之前 我们需要先来学习一种随机化的数据结构–跳跃表(skip list) 对于数组的查找可以有很多方法,如果是有序的,那么可以采用二分查找,二分查找...

    2018-01-16 19:14
    118
  • Java 并发 --- Thread 源码浅析

    在多线程编程中,如果要使用线程来执行任务,那么最简单的方式就是使用Thread类来创建一个线程,当然也可以使用线程池的方式。 线程是在进程中执行的单位,线程的资源开销相对于进程的开销是相对较少的,所...

    2018-01-08 14:10
    126
  • Java 并发 --- CopyOnWriteArrayList 源码分析

    CopyOnWriteArrayList,顾名思义,Write的时候总是要Copy,读写分离的思想,通俗地讲,当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器复制出一个新的容器,...

    2018-01-04 12:49
    99
  • Java 并发 --- 阻塞队列总结

    前面我们把阻塞队列学习完了,现在过段时间来进行总结一下,也算是复习回顾知识,比较才能明白使用的场景。

    2017-12-27 20:15
    80
  • Java 并发 --- 非阻塞队列之ConcurrentLinkedQueue源码分析

    在并发编程中,有时候需要使用线程安全的队列,如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法,在前面我们逐一分析过阻塞队列,这篇文章过后,会写篇关于阻塞队列的总结,也...

    2017-12-19 19:48
    110
  • Java集合之ConcurrentHashMap源码分析

    注:本文源码是JDK8的版本ConcurrentHashMap 介绍(jdk 1.8)ConcurrentHashMap是HashMap的升级版,HashMap是非线程安全的集合,Concurrent...

    2017-12-16 18:37
    227
  • Java 并发 --- Exchanger源码分析

    Exchanger 是一个用于线程间协作的工具类,Exchanger用于进行线程间的数据交换,它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据。这两个线程通过exchange 方法交换数据,...

    2017-12-07 20:42
    405
  • Java 并发 --- Semaphore源码分析

    Semaphore(信号量)是用来控制同时访问特定资源的线程数量,可以用于做流量控制,特别是公共资源有限的应用场景,如果熟悉操作系统的概念,那么肯定对这么名词不陌生,当初在学习Linux进程通信中,也...

    2017-12-03 16:21
    97
  • Java 并发 --- CyclicBarrier源码分析

    CyclicBarrier 介绍(jdk 1.8)CyclicBarrier的字面意思是可循环使用(Cyclic)的屏障(Barrier),它的功能是让一组线程到达一个屏障(也就叫同步点)时被阻塞,直...

    2017-12-02 15:21
    100
  • Java 并发 --- CountDownLatch源码分析

    CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。 实现某个线程等待其余线程完成任务的最简单做法是使用join()方法(join 用于当前...

    2017-11-27 21:30
    115
  • Java 并发 --- 阻塞队列之LinkedBlockingDeque源码分析

    LinkedBlockingDeque是基于双向链表的双端有界阻塞队列,默认使用非公平ReentrantLock实现线程安全,默认队列最大长度都为Integer.MAX_VALUE;不允许null元素...

    2017-11-20 14:21
    128
  • Java 并发 --- 阻塞队列之LinkedTransferQueue源码分析

    在前面我们分析了SynchronousQueue,SynchronousQueue这个阻塞队列很特殊,也很抽象,经过一番较量后,终于还是把它拿下,今天我们来看另一个也很抽象的阻塞队列,和Synchro...

    2017-11-16 19:30
    323
  • Java 并发 --- 阻塞队列之SynchronousQueue源码分析

    与前面分析的几个阻塞队列不一样(ArrayBlockingQueue,PriorityBlockingQueuey),SynchronousQueue 很抽象,前面我们看到的阻塞队列都是真真实实的队列...

    2017-11-06 18:01
    271
  • Java 并发 --- 阻塞队列之DelayQueue源码分析

    DelayQueue 是一个支持延时获取元素的无界阻塞队列,队列使用PriorityQueue来实现,队列中的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素,只有在延...

    2017-10-29 15:16
    518
  • Java 并发 --- 阻塞队列之PriorityBlockingQueuey源码分析

    在学习完ArrayBlockingQueue,LinkedBlockingQueue 之后,应该对阻塞队列有了一个比较清晰的认识,今天我们来学习另一个阻塞队列PriorityBlockingQueue...

    2017-10-27 22:17
    503
  • Java 并发 --- 阻塞队列之LinkedBlockingQueue源码分析

    HashMap应该是使用的一个频率很高的一个集合了,平时用得很多,但是了解并不深入,一起来看看HashMap的结构实现和功能原理。 HashMap(jdk 1.8) HashMap是Java的...

    2017-10-17 22:16
    597
  • Java 并发 --- 阻塞队列之ArrayBlockingQueue源码分析

    队列是一种FIFO(先进先出)数据结构,在前面我们知道分析过LinkedList的源码,LinkedList可以作为一般的队列使用,既然有阻塞队列,那么肯定就和一般的队列是有不一样的地方,并且使用场景...

    2017-10-14 21:39
    480
  • Java 并发 ---ReentrantReadWriteLock源码分析

    在我们分析了AbstractQueuedSynchronizer(同步器)之后,分析了ReentrantLock,ReentrantLock内部组合了同步器来完成同步操作,从源码中我们知道Reentr...

    2017-10-08 20:38
    479

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部