• 2024-04-25Java ---- 阻塞队列 Blocking Queue
    阻塞队列(BlockingQueue)是一种特殊类型的队列,用于多线程环境中,实现进程通信;常见的Java阻塞队列包括:(1)ArrayBlockingQueue(有界队列)内部是采用数组存储元素的,初始化需要指定容器大小,ArrayBlockingQueue可以用于实现数据缓存、限流、生产者-消费者模式等各种应用。在队列的
  • 2024-03-25Java并发编程:第六章 阻塞队列
    文章目录一、BlockQueue1、特点2、阻塞队列常用方法二、常见的BlockingQueue1、介绍2、ArrayBlockingQueue3、LinkedBlockingQueue4、PriorityBlockingQueue5、LinkedTransferQueue6、SynchrousQueue7、DelayQueue一、BlockQueue1、特点阻塞队列与普通队列(ArrayDe
  • 2024-01-28workQueue
    线程池参数的workQueue决定了缓存任务的排队策略,对于不同的业务场景,我们可以使用不同的排队策略。我们只需要实现BlockingQueue这个接口即可。介绍一下常用的有三种workQueue。1.SynchronousQueueSynchronousQueue没有容量,是无缓冲等待队列,是一个不存储元素的阻塞队列,会
  • 2024-01-19线程池
    ExecutorServiceexecutor=Executors.newCachedThreadPool();ExecutorServiceexecutor2=Executors.newFixedThreadPool();ExecutorServiceexecuto3=Executors.newSingleThreadExecutor();SynchronousQueue和LinkedBlockingQueue是Java中两种不同类型的阻塞队列,它们在实现
  • 2023-12-13阻塞队列linkedBlockQuene和syncroBlockQuene的区别?
    在Java中,LinkedBlockingQueue和SynchronousQueue是两种不同类型的阻塞队列,它们有一些关键的区别:实现机制:LinkedBlockingQueue使用一个链表实现的有界或无界队列。有界队列的容量是固定的,而无界队列的容量理论上是无限的。SynchronousQueue是一个特殊的阻塞队列,它在内部
  • 2023-12-13Executors.newFixedThreadPool(int nThreads)存在的缺陷
    一般来讲是不推荐直接使用JAVA提供的Executors类来初始化线程池,如果有需要可以自行通过ThreadPoolExecutor来封装进行初始化。可以用newFixedThreadPool(intnThreads)来简单分析下。看一下源代码不难发现,问题的原因在于此方法返回的ThreadPoolExecutor使用的阻塞队列是Linked
  • 2023-12-04阻塞队列之 LinkedBlockingQueue
    LinkedBlockingQueue:Java多线程编程中的阻塞队列在Java多线程编程中,LinkedBlockingQueue是一个非常重要的类,它提供了一种用于在生产者和消费者之间进行数据传递的机制。LinkedBlockingQueue广泛应用于各种场景,如线程池、任务队列等。本文将详细介绍LinkedBlockingQueue的原理
  • 2023-09-02Java集合面试之Queue篇
    Java集合面试之Queue篇(qq.com)1、队列是什么?队列是常用数据结构之一。是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,故为先进先出(FIFO,firstinfirstout)线性表。和栈一样,队列是一种操作受限制的线性表。2、队列的分类?Qu
  • 2023-06-11阻塞队列LinkedBlockingQueue
    入队方法:put和offerput方法共做了以下情况的考虑:(1)队列已满,阻塞等待;(2)队列未满,创建一个node节点放入队列中,如果放完以后队列还有剩余空间,继续唤醒下一个添加线程进行添加。如果放之前队列中没有元素,放完以后要唤醒消费线程进行消费。offer方法仅仅对put方法一点改动,当队列没有可
  • 2023-05-17LinkedBlockingQueue源码分析
    1、LinkedBlockingQueue使用LinkedBlockingQueue的使用案例详情如下:1importjava.util.concurrent.LinkedBlockingDeque;2importjava.util.concurrent.LinkedBlockingQueue;34publicclassTestLinkedBlockingQueue{5publicstaticvoidmain(String[]
  • 2023-04-09【Java 并发】【十】【JUC数据结构】【三】LinkedBlockingQueue阻塞队列原理
    1 前言这节我们就来看看LinkedBlockingQueue内部实现的原理。2 LinkedBlockingQueue的使用在看原理之前我们先来用一用LinkedBlockingQueue,来体验一下:2.1  插入数据publicclassLinkedBlockingQueueTest{publicstaticvoidmain(String[]args)throwsInter
  • 2023-02-01Java并发编程——LinkedBlockingQueue
    一、阻塞队列BlockingQueue在java.util.concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速
  • 2023-01-10LinkedBlockingQueue和ArrayBlockingQueue对比
    对比一下LinkedBlockingQueue和ArrayBlockingQueue的区别。1.底层数据结构不同LinkedBlockingQueue底层是单向链表,只有一个后继指针/***Linkedlistnodeclass*
  • 2023-01-10LinkedBlockingQueue源码解析
    java.util.concurrent.LinkedBlockingQueue是一个底层为单向链表的,有界的,FIFO阻塞队列;访问和移除操作是在队头,添加操作在队尾进行,并且使用不同的锁进行保护。在使用线程池时
  • 2023-01-06Java并发容器之LinkedBlockingQueue源码分析
    一、简介LinkedBlockingQueue是java并发包下一个以单链表实现的阻塞队列,它是线程安全的,至于它是不是有界的,请看下面的分析。二、源码分析2.1属性 //容量private
  • 2022-12-24LinkedBlockingQueue
    ​​https://www.jianshu.com/p/cc2281b1a6bc​​​继承关系图    /***节点类,用于存储数据*/staticclassNode<E>{Eitem;Node<E>ne
  • 2022-11-22java15源码-LinkedBlockingQueue
    一类图二构造方法//LinkedBlockingQueue.java//take锁privatefinalReentrantLocktakeLock=newReentrantLock();//put锁privatefinalRee
  • 2022-11-13LinkdBlockingQueue简单介绍
    LinkdBlockingQueue是一种基于单向链表的阻塞队列,队头和队尾是两个指针愤慨操作,所用采用了两把锁和两个条件,同时1个Atomicinteger记录count数       这里
  • 2022-10-28java-并发集合-阻塞队列 LinkedBlockingQueue 演示
    java-并发集合-阻塞队列LinkedBlockingQueue演示packageme.grass.demo.concuronte;importjava.util.Date;importjava.util.concurrent.CountDow
  • 2022-10-11LinkedBlockingQueue详解
    LinkedBlockingQueue介绍【1】LinkedBlockingQueue是一个基于链表实现的阻塞队列,默认情况下,该阻塞队列的大小为Integer.MAX_VALUE,由于这个数值特别大,所以LinkedBlock