博客专栏  >  编程语言   >  Java并发编程札记

Java并发编程札记

Java并发编程笔记。主要介绍并发编程的基础、JUC、和进阶知识。

关注
5 已关注
40篇博文
  • Java并发编程札记-总结

    一基础 01基本概念 并发 什么是并发 并发的优点 多线程 线程 并发与并行 线程和进程 02创建线程 创建线程的方式 Thread和Runnable该如何选择 run方法与start方法的区...

    2018-01-11 21:42
    223
  • Java并发编程札记-(七)JUC工具类-01概述

    今天学习JUC中的工具类。 CountDownLatch CountDownLatch是一个通用同步器,用于同步一个或多个任务。在完成一组正在其他线程中执行的任务之前,它允许一个或多个线程一直...

    2018-01-07 23:06
    89
  • Java并发编程札记-(六)JUC线程池-05ExecutorCompletionService

    CompletionService接口是将生产新的异步任务与使用已完成任务的结果分离开来的服务。生产者利用submit()提交要执行的任务。使用者利用take()获取并移除已完成的任务的返回值,并按照...

    2018-01-07 21:09
    102
  • Java线程池架构2-多线程调度器(ScheduledThreadPoolExecutor)

    在前面介绍了java的多线程的基本原理信息:《Java线程池架构原理和源码解析(ThreadPoolExecutor)》,本文对这个java本身的线程池的调度器做一个简单扩展,如果还没读过上一篇文章,...

    2018-01-07 20:10
    127
  • 聊聊并发(八)——Fork/Join框架介绍

    本文首发于InfoQ 1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到...

    2018-01-06 22:24
    137
  • Java并发编程札记-(六)JUC线程池-02ThreadPoolExecutor实现原理

    本文通过学习ThreadPoolExecutor源码来学习线程池的实现原理。 简介 为什么要使用线程池 许多服务器都面临着处理大量客户端远程请求的压力,如果每收到一个请求,就创建一个线程来处...

    2018-01-05 22:02
    168
  • Java并发编程札记-(六)JUC线程池-01概述

    前面的例子中总是需要线程时就创建,不需要就销毁它。但频繁创建和销毁线程是很耗资源的,在并发量较高的情况下频繁创建和销毁线程会降低系统的效率。线程池可以通过重复利用已创建的线程降低线程创建和销毁造成的消...

    2018-01-04 21:15
    444
  • Java并发编程札记-(五)JUC容器-07ConcurrentLinkedQueue

    ConcurrentLinkedQueue是一个基于链表的、无界的、线程安全的队列。此队列按照FIFO原则对元素进行排序。此队列不允许使用null元素。此队列采用了有效的“无等待(wait-free)...

    2018-01-03 21:25
    333
  • Java并发编程札记-(五)JUC容器-06LinkedBlockingDeque

    LinkedBlockingDeque是一个基于链表的、可指定大小的阻塞双端队列。“双端队列”意味着可以同时从队列的头尾两端同时操作,所以LinkedBlockingDeque既支持FIFO,也支持F...

    2018-01-02 16:09
    126
  • Java并发编程札记-(五)JUC容器-05ArrayBlockingQueue与LinkedBlockingQueue

    ArrayBlockingQueue是一个基于数组的有界阻塞队列。“有界”表示数组容量是固定的。试图向已满队列中放入元素会导致操作受阻塞;试图从空队列中提取元素将导致类似阻塞。此类支持对等待的生产者线...

    2017-12-29 16:26
    136
  • Java并发编程札记-(五)JUC容器-04ConcurrentSkipListMap

    ConcurrentSkipListMap是线程安全的有序的哈希表。与同是有序的哈希表TreeMap相比,ConcurrentSkipListMap是线程安全的,TreeMap则不是,且Concurr...

    2017-12-27 21:45
    98
  • Java并发编程札记-(五)JUC容器-03ConcurrentHashMap

    今天来学习ConcurrentHashMap在JDK1.8中的实现。相比JDK1.7,JDK1.8中ConcurrentHashMap的实现有很大的不同。 结构 先来看下JDK1.7与JDK1.8...

    2017-12-25 21:44
    246
  • Java并发编程札记-(五)JUC容器-02CopyOnWrite

    今天学习CopyOnWriteArrayList。CopyOnWriteArrayList可以看做是线程安全的ArrayList,所有的写操作都是通过对底层数组进行一次新的复制实现的,这种思想称为“写...

    2017-12-22 21:56
    378
  • Java并发编程札记-(五)JUC容器-01概述

    今天开始学习JUC容器。JUC提供了用于多线程上下文中的Collection实现与高效的、可伸缩的、线程安全的非阻塞FIFO队列。参考JDK1.8,画出下图。 List JUC容器中List的...

    2017-12-21 08:04
    250
  • Java并发编程札记-(四)JUC锁-10Semaphore简介

    一般的锁在任意时刻只允许一个线程访问一项资源,而计数信号量允许n个任务同时访问一项资源。我们可以将信号量看做一个许可集,可以向线程分发使用资源的许可证。获得资源前,线程调用acquire()从许可集中...

    2017-12-17 23:31
    193
  • Java并发编程札记-(四)JUC锁-09CyclicBarrier

    CyclicBarrier允许一组线程互相等待,直到到达某个公共屏障点。如果你希望一组并行的任务在下个步骤之前相互等待,直到所有的任务都完成了下个步骤前的所有操作,才继续向前执行,那么CyclicBa...

    2017-12-17 23:30
    189
  • Java并发编程札记-(四)JUC锁-08CountDownLatch

    CountDownLatch是一个通用同步器,用于同步一个或多个任务。在完成一组正在其他线程中执行的任务之前,它允许一个或多个线程一直等待。可以用一个初始计数值来初始化CountDownLatch对象...

    2017-12-17 20:18
    257
  • Java并发编程札记-(四)JUC锁-07读写锁的升级—StampedLock

    StampedLock是JDK1.8新增的一个锁,是对读写锁ReentrantReadWriteLock的改进。前面已经学习了ReentrantReadWriteLock,我们了解到,在共享数据很大,...

    2017-12-17 19:01
    396
  • Java并发编程札记-(四)JUC锁-06LockSupport

    LockSupport是JUC锁中比较基础的类,用来创建锁和其他同步类的基本线程阻塞原语。比如,在AQS中就使用LockSupport作为基本线程阻塞原语。它的park()和unpark()方法分别用...

    2017-12-17 12:38
    231
  • Java并发编程札记-(四)JUC锁-05ReentrantReadWriteLock简介

    前面在Java并发编程札记-(四)JUC锁-02Lock与ReentrantLock一文中已经学习了ReentrantLock,其中提到了ReentrantLock是互斥锁。与互斥锁相对应的是共享锁。...

    2017-12-16 22:09
    205
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部