首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java并发编程
舒一笑不秃头
创建于2023-05-26
订阅专栏
Java并发编程,记录自己由弱变强!
等 2 人订阅
共38篇文章
创建于2023-05-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
ThreadPoolExecutor的Worker工作线程
校验线程池状态和工作线程个数代码展示 需要明确两点首先,外层循环校验线程池状态。 内层循环校验工作线程个数。 retry标记为给外循环起个名字。方便最内层的for循环跳出循环。 int c = ctl
ThreadPoolExecutor的addWorker方法
retry:打上标记位,方便后期内层for循环跳出到外层for循环。 int c = ctl.get();获取ctl的值。 int rs = runStateOf(c); 获取ctl高三位的值。 if
ThreadPoolExecutor的execute方法
方法介绍 代码展示与分析 Runnable command。方法体中的参数代表着提交过来的任务。 任务不能为null的非空判断。不然就会抛出空指针异常。 int c = ctl.get();获取ctl
ThreadPoolExecutor的有参构造
核心要点 参数最多的构造方法展示 映入眼帘的是一些健壮性校验 corePoolSize < 0;可以发现这个判断是核心线程的个数不能小于零。但是也就说明核心线程的个数可以等于零。 maximumPoo
ThreadPoolExecutor源码剖析
ThreadPoolExecutor的核心属性 ctl是一个int类型的整数,內部基于AtomicInteger(原子整数)包装了一层,有点类似于装饰者模式,保证在进行运算时是原子性的。 ctl代表者
ThreadPoolExecutor的应用
我们为什么要自定义线程池 在线程池ThreadPoolExecutor中提供了7个参数,都作为非常核心的属性,在线程池去执行任务的时候,每个参数都有决定性的作用。 采用JDK自定义的方式去创建线程池,
JDK自带的构建线程池的方式之newWorkStealingPool
ThreadPoolExecutor的核心特点 ForkJoinPool的核心特点 代码效果使用演示 单线程的效果演示 多线程的效果演示
JDK自带的构建线程池的方式之newScheduleThreadPool
newScheduleThreadPool方法实现展示 基于查看这个方法不难发现,该方法是基于ScheduledThreadPoolExecutor来进行构建的,创建的是ScheduledThread
JDK自带的构建线程池的方式之newCachedThreadPool
newCachedThreadPool内部代码分析 查看上面的注释内容可以知道这个线程池是第一次提交任务的时候创建。 要是在任务执行完成之后的60秒之内没有被使用,线程会终止。 要是再等待的60秒中之
JDK自带的构建线程池的方式之newSingleThreadExecutor
newSingleThreadExecutor的代码展示 可以从这个在Executors中的静态方法newSingleThreadExecutor可以发现,该线程池的实现的最内部也是通过ThreadP
JDK自带的构建线程池的方式之newFixedThreadPool
newFixedThreadPool 需要注意的是线程数虽然是随着你传入的nThreads参数个数是固定了,但是线程是懒加载,在构建之初线程并没有创建,而是随着开发者调用提交的任务使用之后线程才在线程
线程池的基本概念
什么是线程池 JDK中提供的线程池类 可能任务被直接执行。 可能当前任务被暂时存储起来,等到有空闲的线程再去执行这个任务。 可能任务被拒绝了,无法执行。
SynchronousQueue的TransferQueue源码分析
QNode的源码信息分析 一行一行的分析大概内容;下面会省略大量的CAS操作 当前节点可以获取到的next节点 item在生产者和消费者下有所不同。生产者是有数据。消费者为null。 waiter为当
SynchronousQueue核心属性分析
SynchronousQueue核心属性 在 SynchronousQueue内部有一个Transferer的内部类,内部提供了transfer方法。 从下面的方法可以知道内部类中提供的transfe
SynchronousQueue的基本介绍
SynchronousQueue介绍 生产者和消费者的基本方法 效果演示 创建一个SynchronousQueue队列,该队列不存储数据没有长度的概念。默认是false,栈实现
DelayQueue的核心属性和写入、读取流程分析
DelayQueue的核心属性 DelayQueue的写入流程分析 add方法也是包装使用offer方法。 Delay是无解的,数组又可以动态扩容,不需要关注生产者的阻塞问题 offer方法分析 De
DelayQueue的介绍
DelayQueue的介绍 DelayQueue类的内容介绍 声明一个DelayQueue元素类玩一玩 main方法执行 运行结果展示 应用场景介绍
PriorityBlockingQueue的介绍及方法内部实现
SynchronousQueue的介绍 内部实现原理介绍 SynchronousQueue是基于二叉堆结构实现的。 SynchronousQueue同时还是基于数组实现的二叉堆结构。 二叉堆概念介绍
LinkedBlockingQueue中方法实现原理分析
生产者方法实现原理 add方法 add方法是实现是基于封装offer方法。 offer方法 offer包含时间的方法分析 put方法分析 方法内部含义差不多不一一赘述。 消费者方法实现原理 remov
ArrayBlockingQueue中方法的实现原理分析
生产者实现方法分析 add方法分析 封装了offer方法,能添加成功返回true。不能就直接抛异常 offer方法的实现 添加元素分析 offer带时间的方法分析 put方法 消费者实现方法分析 re
下一页