java线程池
猿老头
这个作者很懒,什么都没留下…
展开
-
java并发编程锁机制
之前系列文章都在叙述java线程池的设计以及实现机制,没有涉及java并发编程的锁机制,这是因为锁机制与线程池是相对独立的内容,自成体系,可以把锁机制当做线程池的一个基础组件,想黑盒一样使用它。 可我们如何去设计这样的一个黑盒,这样的一把锁?首先我们先了解清楚我们对锁的基本需求。 程序需要用到锁,说明程序中有多个线程(进程)存在共同竞争的资源,这样的资源可以包括一个共享变量,共享文件等。就线程池来...原创 2019-12-14 12:55:23 · 242 阅读 · 0 评论 -
java线程池实现细节
续上篇所说java线程池的算法,我们知道java线程池内部维护了一个状态机以及工作线程与任务的动态调控,前者可以理解是线程池的控制信号,掌握线程池的生杀大权;后者可以理解成线程池人力与任务的权衡。 今天就从几个源码方法来看这一个状态机,一个工作线程组和一个任务组怎样工作的。这几个方法位于java.util.concurrent.ThreadPoolExecutor类中。 首先看状态机的实现,线程池...原创 2019-11-24 23:54:05 · 446 阅读 · 0 评论 -
java线程池算法
继上篇所讲述的java线程池数据结构,我们已经拿到了搭建java线程池的原料,接下来我们需要设计合理的算法来使线程池合理运作起来。 java线程池属于软件工程领域的范畴,软件工程领域的算法特指的是工程某些特定功能的流程,某个组件的状态机,系统序列图以及整个系统或组件的运作流程。 所以,java线程池核心算法(流程)可以拆分为线程池的状态转移流程,线程创建以及执行的周期以及任务的添加和缓存机制。 首...原创 2019-11-18 00:50:11 · 548 阅读 · 0 评论 -
java线程池数据结构
续上篇所述,Java线程池作为jdk组件箱中重要的一员,其产生的背后是要来解决一些需求,如线程的管理,任务的管理,自身的生命周期的管理等。 有了需求,就有了一张蓝图,其描绘了程序最初的样子,程序设计由此便有了依据。按照古老的 “程序 = 数据结构+ 算法” 的指挥思想,我们首先得确定线程池的数据结构。而数据结构说白就是数据的组织与存储的方式,就像是好的仓库管理员对货物分门别类的放置一样,我们需要对...原创 2019-11-12 01:28:20 · 643 阅读 · 0 评论 -
java线程池初探
说到java线程池,对我们这些普通的应用开发者来说,可能是既熟悉又陌生,为什么这样讲呢?熟悉是指我们对线程池是耳熟能详,跟人说起总能唠嗑几句;而陌生,是指我们对线程池的设计与实现的陌生,是对java jdk对线程池的实现细节的陌生,所以对于线程池,我们可能停留在能唠嗑几句的层面。 线程池是对象池的一种,也就是我们常说的池化技术的一种具体实现,类似的有数据库的连接池 ,Netty ByteBuf缓冲...原创 2019-11-09 14:59:13 · 180 阅读 · 0 评论