生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。 真实世界中的生产者消费者模式 生产者和消费者模式在生…
标签:JUC
Java多线程:AtomicIntegerArray 原子更新数组类,Java多线程系列--“JUC原子类”03之 AtomicLongArray原子类
前言 原子更新数组类顾名思义,通过原子的方式更新数组里的某个元素,Atomic包提供了以下三个类: AtomicIntegerArray:原子更新整型数组里的元素。 AtomicLongArray:原子更新长整型数组里的…
Java并发包基石-AQS详解
目录 1 基本实现原理 1.1 如何使用 1.2 设计思想 2 自定义同步器 2.1 同步器代码实现 2.2 同步器代码测试 3 源码…
JUC学习笔记(7)—CountDownLatch
让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。 CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞。其它线程调用countDow…
Java锁的种类以及辨析(二):自旋锁的其他种类
作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少…
07 Java JUC 中的 Executor 框架 周期性任务调度
ScheduledExecutorService基于ExecutorService,是一个完整的线程池调度。另外在提供线程池的基础上增加了四个调度任务的API。 schedule(Runnable command,lon…
FutureTask
Future是我们在使用java实现异步时最常用到的一个类,我们可以向线程池提交一个Callable,并通过future对象获取执行结果。本篇文章主要讲述了JUC中FutureTask中的一些实现原理。使用的…
Java基础加强之并发(一)基本概念介绍
基本概念介绍 进程:它是内存中的一段独立的空间,可以负责当前应用程序的运行。当前这个进程负责调度当前程序中的所有运行细节。 线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间。 进程是负责整个程序的运行,而…
Java多线程_JUC包下的阻塞队列
在前面我们提到了阻塞队列,也用过了LinkedBolckingQueue队列了,在这里,我们主要对 ArrayBlockingQueue,PriorityBlockingQueue,DelayQueue,Synchron…
JUC - ReentrantLock 源码分析
简介 ReentrantLock,一个可重入的独占锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。 源码分析 ReentrantLock的实现方…
Java同步和多线程2:JUC锁
通过前面的文章我们知道了,可以通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁,但是在同一个时间点,该同步锁能且…
多线程编程()--Juc锁框架之ReentrantLock
一、ReentrantLock概述。 1.1 含义概述 ReentrantLock一个可重入的互斥锁,又被称为“独占锁”,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但…