• 【JUC】JUC集合框架综述

    时间:2023-11-09 21:37:17

    一、前言完成了JUC的锁框架的分析后,现在分析JUC集合框架,之前分析过的集合框架,很大程度上都不是线程安全的,其在多线程环境下会出现很多问题,为了保证在多线程环境下仍然能够正确安全的访问集合,出现了JUC下的集合框架,下面逐一进行介绍分析。二、JUC集合框架图下面给出JUC中的集合框架,之后我们会...

  • java 多线程系列---JUC原子类(一)之框架

    时间:2023-06-29 22:20:38

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

  • JUC并发编程第二章之CompletableFuture[加强版的线程]

    时间:2023-04-07 19:54:25

    文章目录 1、 创建线程的几种方式2、 Future的优缺点3、CompletableFuture对Future的改进3.1、CompletableFuture的基本结构3.2、创建CompletableFuture四种方式3.3、CompletableFuture的流式调用3.4、Complet...

  • 【JDK1.8】JUC.Lock综述

    时间:2023-03-06 22:11:39

    一、前言前段时间结束了jdk1.8集合框架的源码阅读,在过年的这段时间里,一直在准备JUC(java.util.concurrent)的源码阅读。平时接触的并发场景开发并不很多,但是有网络的地方,就存在并发,所以想找几本书阅读深入一下,看到网上推荐较多的两本书《Java并发编程实战》和《Java多线...

  • JUC之Atomic系列12大类实例讲解和原理分解

    时间:2023-02-26 13:22:32

    一、java内存模型提到同步、锁,就必须提到Java的内存模型,为了提高程序的执行效率,java也吸收了传统应用程序的多级缓存体系。在共享内存的多处理器体系架构中,每个处理器都拥有自己的缓存,并且定期地与主内存进行协调。在不同的处理器架构中提供了不同级别的缓存一致性(Cache Coherence)...

  • 限流器算法实现(JUC原子类使用实践)

    时间:2023-02-17 07:11:50

    系列文章目录和关于我一丶限流器存在的意义在高并发系统中,出于系统保护角度考虑,通常会对流量进行限流。限流*的目的是在遇到流量高峰期或者流量突增(流量尖刺)时,通过对流量速率进行限制,当达到限制速率时,可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据...

  • Java多线程系列--“JUC集合”09之 LinkedBlockingDeque

    时间:2023-02-13 14:39:43

    概要 本章介绍JUC包中的LinkedBlockingDeque。内容包括:LinkedBlockingDeque介绍LinkedBlockingDeque原理和数据结构LinkedBlockingDeque函数列表LinkedBlockingDeque源码分析(JDK1.7.0_40版本)Link...

  • Java多线程系列--“JUC集合”08之 LinkedBlockingQueue

    时间:2023-02-13 14:07:31

    概要 本章介绍JUC包中的LinkedBlockingQueue。内容包括:LinkedBlockingQueue介绍LinkedBlockingQueue原理和数据结构LinkedBlockingQueue函数列表LinkedBlockingQueue源码分析(JDK1.7.0_40版本)Link...

  • Java多线程系列--“JUC集合”08之 LinkedBlockingQueue

    时间:2023-02-13 14:02:56

    Java多线程系列--“JUC集合”08之 LinkedBlockingQueue   概要 本章介绍JUC包中的LinkedBlockingQueue。内容包括:LinkedBlockingQueue介绍LinkedBlockingQueue原理和数据结构LinkedBl...

  • java的多线程juc

    时间:2023-02-13 13:53:38

    1.进程与线程: 线程:一个进程可以拥有多个并行的线程,线程是进程中一个程序执行控制的单元 进程:由cpu,data,code三部分组成,每个进程都是独立的,由系统分配,进程间的切换开销较大,进程基于操作系统; 2.并行与并发 并发:多个线程访问同一份资源 并行:在多个cpu情形下,多个线程同时运行...

  • Java线程(六):JUC包阻塞队列的应用

    时间:2023-02-13 13:54:02

    前言: 1、利用Lock 和 Condition  实现一个阻塞队列 一、阻塞队列 BlockingQueue接口 1、队列:数据的集合,先进先出。有固定大小的,也可以不固定。 2、阻塞与非阻塞:可以阻塞也可以不阻塞。 1)阻塞队列,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,...

  • JUC——线程同步锁(ReentrantLock)

    时间:2023-02-13 13:53:56

    ReentrantLock简介 ReentrantLock是一个可重复的互斥锁,又被称为独占锁,可重入的意思是:ReentrantLock锁可以被单个线程多次获取。但是在同一个时间点只能被一个线程锁持有 ReentrantLock使用一个FIFO(先进先出)的等待队里来管理获取该锁所有线程的。   ...

  • Java线程(四):JUC包线程互斥与同步以及读写锁

    时间:2023-02-13 13:13:09

    前言: 1、Java线程(一):传统线程的实现、互斥与通信 一、线程的互斥 (一)传统互斥:synchronized 关键字  1、synchronized(对象) 代码块需要锁定同一个对象,一般会锁定业务类对象,即synchronized(this)即可。 2、如静态方法互斥,则需要锁定内存中的...

  • Java线程(五):JUC包线程同步工具

    时间:2023-02-13 13:12:51

    一、线程同步工具 Semaphore 1、Semaphore 可以维护当前访问自身的线程个数,并提供了同步机制。使用 Semaphore 可以控制同时访问资源的线程个数。相当于蹲坑,一共有3个坑,10个人来,只能三个三个上,三个并发。例如,实现一个文件允许的并发访问数。 2、单个Semaphore,...

  • Java多线程07——JUC并发包03

    时间:2023-02-11 07:16:32

    1 线程的锁的synchronized、Lock、volatile区别1.1 synchronized 和 volatile 区别用法:volatile 关键字解决的是变量在多个线程之间的可见性;synchronized 关键字解决的是多个线程之间访问共享资源的同步性;多线程访问 volatile ...

  • Java多线程06——JUC并发包02

    时间:2023-02-10 10:57:02

    1 线程的同步工具类 ​​CountDownLatch​​​​CountDownLatch​​ 同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。​​CountDownLatch​​ 类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次 co...

  • Java多线程05——JUC并发包01

    时间:2023-02-09 07:20:51

    1 JUC并发包JUC 即 ​​java.util.concurrent​​ 类的简称。主要为并发编程提供了许多通用工具类。2 线程的 ThreadLocal 本地缓存对象线程范围内的共享变量,每个线程只能访问自己的数据,而不能访问其它线程数据。每个线程调用全局 ​​ThreadLocal​​ 对象...

  • Java多线程系列--“JUC线程池”01之 线程池架构

    时间:2023-02-08 23:03:01

    概要前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509903.html线程池架构图线程池的架构图如下:1...

  • 聊聊JUC包下的底层支撑类-AbstractQueuedSynchronizer(AQS)

    时间:2023-02-07 12:07:41

    juc包下的一堆并发工具类是我们日常开发特别是面试中常被拿来问的八股文之一,为了工作也好,为了面试也罢,今天开始想尝试着把这些给大伙描述明白,所以开始写下这篇博文,如果后续要涉及每个常用类的源码的话可能会是一个系列,计划从比较底层的AQS聊起,然后结合ReentrantLock的源码来聊AQS独占锁...

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

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

    概要 前面一章,我们学习了“公平锁”获取锁的详细流程;这里,我们再来看看“公平锁”释放锁的过程。内容包括:参考代码释放公平锁(基于JDK1.7.0_40) “公平锁”的获取过程请参考“Java多线程系列--“JUC锁”03之 公平锁(一)”,锁的使用示例请参考“Java多线程系列--“JUC锁”02...