前面学习了基础的多线程知识。今天开始学习JAVA的并发包java.util.concurrent。java并发包包括 java.util.concurrent、java.util.concurrent.atomic、ja…
标签:JUC
《java并发编程实战》读书笔记1--线程安全性,内置锁,重入,状态,Java多线程系列--“JUC原子类”04之 AtomicReference原子类,Java多线程系列--“JUC原子类”02之 AtomicLong原子类
什么是线程安全? 当多个线程访问某个类时,不管这些的线程的执行顺序如何,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 哈哈书上的解释,还是翻译过来的,看了半天还是觉…
Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例
Semaphore简介 Semaphore是一个计数信号量,它的本质是一个”共享锁“。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时…
JUC--CountDownLatch简介和使用
1 概述 在我们的项目开发当中,我们通常会遇到这样的问题,一个线程的执行要等到其余几个线程执行完成才能开始,这种情况我们怎么办呢?这里就可以使用到我们JUC下面的并发工具类CountDownLatch。 2 示例 imp…
【Java并发编程】21、线程池ThreadPoolExecutor源码解析
一、前言 JUC这部分还有线程池这一块没有分析,需要抓紧时间分析,下面开始ThreadPoolExecutor,其是线程池的基础,分析完了这个类会简化之后的分析,线程池可以解决两个不同问题:由于减少了每个任务调用的开…
juc-线程八锁
https://blog.csdn.net/dyt443733328/article/details/80019352
09.JUC 锁 - ReentrantReadWriteLock
基本概念 ReadWriteLock (读写锁)内部维护着两个锁,一个用于写操作,即写锁;一个用于读操作,即读锁。 写锁,是独占锁,即只能被一个线程持有。 读锁,是共享锁,即可以同时被多个线程持有。 它的接口定义如下: …
Java多线程系列 JUC线程池01 线程池框架
转载 http://www.cnblogs.com/skywang12345/p/3509903.html 为什么引入Executor线程池框架 new Thread()的缺点 1. 每次new T…
juc中ArrayBlockingQueue为什么出入用同一个锁?
昨天突然想到一个问题,为什么juc中ArrayBlockingQueue用一个锁(两个condition),而LinkedBlockingQueue用两个锁(两个condition)实现。 这导致了后者可以一边取一边放,…
java多线程系列--"JUC"原子类 05 之AtomicLongFieldUpdater原子类
AtomicLongFieldUpdater介绍和函数列表 AtomicLongFileUpdater可以对指定的类的”volatire long”类型的成员 进行原子更新,它是基于反射原理实现的…
JUC - CountDownLatch 源码分析
简介 CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 源码分析 CountDownLatch的实现方式是在内部定义了一个实现AbstractQueue…
java多线程系列-JUC线程池之 01 线程池架构
java多线程系列-JUC线程池之 01 线程池架构 概要 线程池整体架构介绍 简单示例 1. 线程池整体架构介绍 1. Executor Executor将任务的执行和任务的创建分离开来。他提供了执行的接口,是来执行任…