![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程系列
tangtong1
这个作者很懒,什么都没留下…
展开
-
3. 彤哥说netty系列之Java BIO NIO AIO进化史
你好,我是彤哥,本篇是netty系列的第三篇。欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。简介上一章我们介绍了IO的五种模型,实际上Java只支持其中的三种,即BIO/NIO/AIO。本文将介绍Java中这三种IO的进化史,并从使用的角度剖析它们背后的故事。Java BIOBIO概念解析BIO,Blocking IO,阻塞IO,它是Java的上古产品,自出生就有的东西(...原创 2019-11-19 07:35:43 · 1001 阅读 · 1 评论 -
2. 彤哥说netty系列之IO的五种模型
你好,我是彤哥,本篇是netty系列的第二篇。欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。简介本文将介绍linux中的五种IO模型,同时也会介绍阻塞/非阻塞与同步/异步的区别。何为IO模型对于一次IO操作,数据会先拷贝到内核空间中,然后再从内核空间拷贝到用户空间中,所以一次read操作,会经历两个阶段:(1)等待数据准备(2)数据从内核空间拷贝到用户空间基于以上两个阶段...原创 2019-11-14 00:04:09 · 982 阅读 · 0 评论 -
1. 彤哥说netty系列之开篇(有个问卷调查)
你好,我是彤哥,本篇是netty系列的第一篇。欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。简介本文主要讲述netty系列的整体规划,并调查一下大家喜欢的学习方式。知识点netty系列彤哥准备分成三个大的模块来完成:入门篇入门篇主要讲述一些必备的基础知识,例如IO的五种模型、BIO/NIO/AIO如何演进、Java nio的使用及组件介绍、netty的使用及组件介...原创 2019-11-12 22:34:05 · 1127 阅读 · 1 评论 -
死磕 java线程系列之终篇
(手机横屏看源码更方便)简介线程系列我们基本就学完了,这一个系列我们基本都是围绕着线程池在讲,其实关于线程还有很多东西可以讲,后面有机会我们再补充进来。当然,如果你有什么好的想法,也可以公从号右下角联系我。重要知识点直接上图,看着这张图我相信你能够回忆起很多东西,也可以看着这张图来自己提问自己回答,当然,也可以把这张图作为面试复习的参考。其中,ThreadLocal是我们没有分析...原创 2019-11-11 00:07:29 · 1047 阅读 · 3 评论 -
死磕 java线程系列之ForkJoinPool深入解析
(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于 java8 版本。注:本文基于ForkJoinPool分治线程池类。简介随着在硬件上多核处理器的发展和广泛使用,并发编程成为程序员必须掌握的一门技术,在面试中也经常考查面试者并发相关的知识。今天,我们就来看一道面试题:如何充分利用多核CPU,计算很大数组中所有整数的和?剖析单线程相加?我们最容易想到...原创 2019-11-09 01:09:56 · 1483 阅读 · 0 评论 -
死磕 java线程系列之线程池深入解析——定时任务执行流程
(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于 java8 版本。注:本文基于ScheduledThreadPoolExecutor定时线程池类。简介前面我们一起学习了普通任务、未来任务的执行流程,今天我们再来学习一种新的任务——定时任务。定时任务是我们经常会用到的一种任务,它表示在未来某个时刻执行,或者未来按照某种规则重复执行的任务。问题(1)如何保证任务是...原创 2019-11-05 21:28:11 · 1067 阅读 · 0 评论 -
死磕 java线程系列之线程池深入解析——未来任务执行流程
(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于 java8 版本。注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类。简介前面我们一起学习了线程池中普通任务的执行流程,但其实线程池中还有一种任务,叫作未来任务(future task),使用它您可以获取任务执行的结果,它是怎么实现的呢?建议学习本章前先去看看彤哥之前写的《死磕 java线程系列...原创 2019-11-04 21:53:29 · 1010 阅读 · 0 评论 -
死磕 java线程系列之线程池深入解析——普通任务执行流程
(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于 java8 版本。注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类。简介前面我们一起学习了Java中线程池的体系结构、构造方法和生命周期,本章我们一起来学习线程池中普通任务到底是怎么执行的。建议学习本章前先去看看彤哥之前写的《死磕 java线程系列之自己动手写一个线程池》那两章,有助于理解本章...原创 2019-11-03 15:33:04 · 481 阅读 · 0 评论 -
面试 LockSupport.park()会释放锁资源吗?
(手机横屏看源码更方便)引子大家知道,我最近在招人,今天遇到个同学,他的源码看过一些,然后我就开始了AQS连环问。我:说说AQS的大致流程?他:AQS包含一个状态变量,一个同步队列……balabala……互斥锁balabala,共享锁balabala……我:AQS中除了同步队列,还有什么队列?他:还有个Condition,Condition中有个条件队列……我:条件队列和同步队...原创 2019-10-31 00:04:13 · 5003 阅读 · 10 评论 -
死磕 java线程系列之线程池深入解析——生命周期
(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于 java8 版本。注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类。简介上一章我们一起重温了下线程的生命周期(六种状态还记得不?),但是你知不知道其实线程池也是有生命周期的呢?!问题(1)线程池的状态有哪些?(2)各种状态下对于任务队列中的任务有何影响?先上源码其实,在我们讲线程池体系...原创 2019-10-27 20:25:54 · 1073 阅读 · 0 评论