文章 2024-04-25 来自:开发者社区

Java多线程实战-从零手搓一个简易线程池(一)定义任务等待队列

前言 在多线程编程中,线程池是一种非常重要的工具。它可以帮助我们高效地管理线程资源,避免频繁创建和销毁线程带来的性能开销。Java中提供了强大的线程池实现,如 ThreadPoolExecutor ,但有时我们可能希望了解其内部原理,并实现一个简单的线程池来加深对其工作机制的理解,手写线程池也是很多大厂常考的笔试题。 开个新坑-手搓简易线程池。本系列文章将从零...

Java多线程实战-从零手搓一个简易线程池(一)定义任务等待队列
文章 2022-06-13 来自:开发者社区

【Java数据结构及算法实战】系列011:数组实现的优先级队列PriorityQueue

PriorityQueue是基于数组实现的无界优先级队列。PriorityQueue中的元素按其自然顺序排序,或由队列构造时提供的比较器根据所使用的构造函数排序。优先级队列不允许空元素,依赖自然顺序的优先级队列也不允许插入不可比较的对象。PriorityQueue本质上就是一个最小堆存储结构数组,通过“极大优先级堆”实现的,即堆顶元素是优先级最大的元素。堆的操作,主要就是两个:siftUp(向上....

【Java数据结构及算法实战】系列011:数组实现的优先级队列PriorityQueue
文章 2022-05-17 来自:开发者社区

【Java 数据结构及算法实战】系列 014:Java队列08——数组实现的双端队列ArrayDeque

ArrayDeque是基于数组实现的无界双端队列。ArrayDeque中的数组没有容量限制,它们能根据需要增长以支持使用。需要注意的是ArrayDeque不是线程安全的,因此在没有外部同步的情况下,它们不支持多线程并发访问。ArrayDeque用作栈时可能比Stack更快,用作队列时可能比LinkedList更快。ArrayDeque禁止插入空元素。ArrayDeque及其迭代器实现了Colle....

【Java 数据结构及算法实战】系列 014:Java队列08——数组实现的双端队列ArrayDeque
文章 2022-05-09 来自:开发者社区

【Java 数据结构及算法实战】系列 013:Java队列07——双端队列Deque

双端队列(Deque),顾名思义是可以在队列的两端插入和移除元素的特殊队列。Java提供了java.util.Deque<E>接口以提供对双端队列的支持。该接口是Java Collections Framework的一个成员。1.   Deque的方法这个java.util.Deque<E>接口接口定义了访问Deque两端元素的方法,包括插入、删除和检查元素的方....

【Java 数据结构及算法实战】系列 013:Java队列07——双端队列Deque
文章 2022-05-06 来自:开发者社区

【Java数据结构及算法实战】系列012:Java队列06——数组实现的优先级阻塞队列PriorityBlockingQueue

PriorityBlockingQueue是基于数组实现的无界优先级阻塞队列。PriorityBlockingQueue与PriorityQueue类似,其中的元素按其自然顺序排序,或由队列构造时提供的比较器根据所使用的构造函数排序。优先级队列不允许空元素,依赖自然顺序的优先级队列也不允许插入不可比较的对象。相比于PriorityQueue而言,PriorityBlockingQueue一个最大....

【Java数据结构及算法实战】系列012:Java队列06——数组实现的优先级阻塞队列PriorityBlockingQueue
文章 2022-04-29 来自:开发者社区

【Java数据结构及算法实战】系列010:Java队列04——链表实现的阻塞队列LinkedBlockingQueue

LinkedBlockingQueue是一种基于链表实现的可选边界的阻塞队列,该队列排序元素FIFO。队列的队首是在该队列上停留时间最长的元素,队列的队尾是在该队列上停留最短时间的元素。在队列尾部插入新的元素,队列检索操作在队列的头部获取元素。 在大多数并发应用程序中,基于链表实现的队列通常具有比基于数组实现的队列更高的吞吐量,但性能上未必占优势。 LinkedBlockin....

文章 2022-04-27 来自:开发者社区

【Java数据结构及算法实战】系列009:Java队列03——数组实现的阻塞队列ArrayBlockingQueue

顾名思义,ArrayBlockingQueue是基于数组实现的有界阻塞队列。该队列对元素进行FIFO排序。队列的首元素是在该队列中驻留时间最长的元素。队列的尾部是在该队列中停留时间最短的元素。新的元素被插入到队列的尾部,队列检索操作获取队列头部的元素。ArrayBlockingQueue是一个经典的“有界缓冲区(bounded buffer)”,其中内部包含了一个固定大小的数组,用于承载包含生产....

【Java数据结构及算法实战】系列009:Java队列03——数组实现的阻塞队列ArrayBlockingQueue
文章 2022-04-25 来自:开发者社区

【Java数据结构及算法实战】系列008:Java队列02——阻塞队列BlockingQueue

阻塞队列(BlockingQueue)是一种支持额外操作的队列,这两个附加的操作是:l 在队列为空时,获取元素的线程会等待队列变为非空。l 当队列满时,存储元素的线程会等待队列可用。Java提供了java.util.concurrent.BlockingQueue接口以提供对阻塞队列的支持。该接口是Java Collections Framework的一个成员。BlockingQueue的方...

【Java数据结构及算法实战】系列008:Java队列02——阻塞队列BlockingQueue
文章 2022-04-22 来自:开发者社区

【Java数据结构及算法实战】系列007:Java队列01——Queue概述

队列与栈类似,也是一种运算受限的线性表。队列则被限定在表尾进行插入、在表头进行删除,这种数据结构,实现了FIFO(First In First Out,先进先出)或者是LILO(Last In Last Out,后进后出)的方式工作。   下图很形象将队列比作是实现生活中的排队。排在队列前面的总是会最先得到处理,而排在队列后面的总是最后得到处理。 &...

【Java数据结构及算法实战】系列007:Java队列01——Queue概述

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问