• java并发编程(十九)----(JUC集合)总体框架介绍

    时间:2023-02-04 20:48:14

    本节我们将继续学习JUC包中的集合类,我们知道jdk中本身自带了一套非线程安全的集合类,我们先温习一下java集合包里面的集合类,然后系统的看一下JUC包里面的集合类到底有什么不同。java集合类java集合类里面主要包含两大类:一类是Collection接口下的List、Set和Queue接口,一...

  • java并发编程(七)----(JUC)ReadWriteLock

    时间:2023-02-04 20:48:20

    前面我们已经分析过JUC包里面的Lock锁,ReentrantLock锁和semaphore信号量机制。Lock锁实现了比synchronized更灵活的锁机制,Reentrantlock是Lock的实现类,是一种可重入锁,都是每次只有一次线程对资源进行处理;semaphore实现了多个线程同时对一...

  • Java多线程系列--“JUC锁”03之 公平锁(一)

    时间:2023-02-04 20:48:08

    概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念参考代码获取公平锁(基于JDK1.7.0_40)  一. tryAcquire()  二. addWaiter()  三. acquireQueued()  四. selfInterrupt()“公平锁...

  • Java之JUC系列(03)--互斥锁ReentrantLock

    时间:2023-02-04 20:48:02

    一、ReentrantLock基本介绍 ReentrantLock是一个可重入的互斥锁,又被称为“互斥锁”。 ReentrantLock锁(互斥锁):指在同一个时间点只能被一个线程所持有;可重入则是说ReentrantLock可以被单个线程多次获取。 ReentrantLock分为“公平锁...

  • Java多线程系列 JUC锁06 Condition条件

    时间:2023-02-02 22:55:30

    Condition介绍Condition中提供了一组类似于Object中的监视器方法。与Lock配合可以完成等待通知模式。Lock lock = new ReentrantLock();Condition condition1 = lock.newCondition();//创建和该锁关联的条件锁C...

  • Java并发JUC——Future和Callable

    时间:2023-01-31 19:54:42

    Runnable的缺陷不能返回一个返回值也不能抛出checked ExceptionCallable接口类似于Runnable,被其他线程执行的任务Callable接口中只有一个call()方法,和Runnable相比,该方法有返回值并允许抛出异常Future类Future表示一个可能还没有完成的异...

  • Java多线程系列--“JUC线程池”02之 线程池原理(一)

    时间:2023-01-31 17:23:30

    概要在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理。内容包括:ThreadPoolExecutor简介ThreadPo...

  • juc并发工具类之CountDownLatch闭锁

    时间:2023-01-28 20:50:52

    import java.util.concurrent.CountDownLatch;/** * 闭锁: 在进行某些运算时, 只有其他所有线程的运算全部完成,当前运算才继续执行(程序流中加了一道栅栏) * 联想: 相当于水电站的水坝, 会拦截上游的水, 当积累到一定水位才放水. * 马场赛...

  • java并发编程(五)----(JUC)ReentrantLock

    时间:2023-01-28 20:50:46

    上一节我们了解了Lock接口的一些简单的说明,知道Lock锁的常用形式,那么这节我们正式开始进入JUC锁(java.util.concurrent包下的锁,简称JUC锁)。下面我们来看一下Lock最常用的实现类ReentrantLock。1.ReentrantLock简介由单词意思我们可以知道这是可...

  • Java JUC并发包之CyclicBarrier循环栅栏

    时间:2023-01-19 08:57:50

    不问收获,只问耕耘 ????????????文章目录​​前言​​​​代码示例​​​​总结​​前言​​CyclicBarrier​​ 字面意思是循环栅栏,是一个同步的工具,能够允许一组线程去互相等待直到都到达了屏障,CyclicBarrier对于涉及到固定大小的线程是非常有用的,线程们必须相互等待。该...

  • 【JUC】JDK1.8源码分析之LockSupport(一)

    时间:2023-01-18 19:13:59

    一、前言最开始打算分析ReentrantLock,但是分析到最后,发现离不开LockSuport的支持,所以,索性就先开始分析LockSupport,因为它是锁中的基础,是一个提供锁机制的工具类,所以先对其进行分析。二、LockSupport源码分析2.1 类的属性public class Lock...

  • JUC-并发编程的艺术

    时间:2023-01-17 20:51:35

    本文转自:https://my.oschina.net/tjt/blog/726522 Java并发容器和框架 ConcurrentHashMap的实现原理与使用 在并发编程中使用HashMap可能导致程序死循环。而使用线程安全的HashTable效率又非 常低下,基于以上两个原因,便有了Concu...

  • JUC-基础内容概述

    时间:2023-01-17 20:51:47

    1. JUC概况 以下是Java JUC包的主体结构: Atomic : AtomicInteger Locks : Lock, Condition, ReadWriteLock Collections : Queue, ConcurrentMap Executer : Future,...

  • JUC-Callable

    时间:2023-01-17 12:51:16

    实现线程的方式有四种:1,实现runnable接口:2,继承Thread。3,也就是本节的Callable接口。4,使用线程池。区别:实现Callable接口的方式,相较于实现Runnable接口方式,可以有返回值,并且可以抛出异常。执行 Callable 方式,需要 FutureTask 实现类的...

  • JUC集合之 CopyOnWriteArraySet

    时间:2023-01-16 15:55:34

    CopyOnWriteArraySet介绍它是线程安全的无序的集合,可以将它理解成线程安全的HashSet。有意思的是,CopyOnWriteArraySet和HashSet虽然都继承于共同的父类AbstractSet;但是,HashSet是通过“散列表(HashMap)”实现的,而CopyOnWr...

  • Java并发编程札记-(三)JUC原子类-01概述

    时间:2023-01-12 20:52:15

    今天来学习JUC原子类。JUC原子类位于java.util.concurrent.atomic包下,支持在单个变量上解除锁的线程安全编程。 参考JDK1.8的java.util.concurrent.atomic包,画出如下图: 可以将包中的类分为五类: 基本类型:AtomicBoole...

  • 详解JUC之原子类概述

    时间:2023-01-12 20:52:03

    原子操作在讲 JUC (java.util.concurrent) 的原子类之前呢,我得先介绍一下原子操作在化学变化中,原子(Atom)是不能再分的一种粒子(在物理上还可以分为质子和电子),计算机中的原子操作是指不能分割成若干部分的操作,表示这个操作在执行过程中,是不能被中断的。比如说int i=0...

  • JUC原子类-01之 框架

    时间:2023-01-12 20:51:51

    根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; ...

  • java并发编程(十四)----(JUC原子类)对象的属性修改类型介绍

    时间:2023-01-12 20:52:03

    今天我们介绍原子类的最后一个类型—-对象的属性修改类型: AtomicIntegerFieldUpdater,AtomicLongFieldUpdater,AtomicReferenceFieldUpdater。有了这几个方法,普通的变量也能享受原子操作了。 1. 开胃菜 由API我们知道A...

  • java并发编程(十三)----(JUC原子类)引用类型介绍(CAS和ABA的介绍)

    时间:2023-01-12 20:51:57

    这一节我们将探讨引用类型原子类:AtomicReference, AtomicStampedRerence, AtomicMarkableReference。AtomicReference的使用非常简单,根据API我们就可以知道如何用,但是后两个从名字上看起来感觉是很难的样子,其实只是他的样子长得有...