随笔分类 - java多线程
摘要:前言:对于Java线程状态方面的知识点,笔者总感觉朦朦胧胧,趁着最近整理资料,将Java线程状态方面的知识点总结归纳,以便加深记忆。 1.Java线程状态值 在Thread类源码中通过枚举为线程定义了6种状态值。 2.线程状态转换 看图理解,下图对线程状态转换描述得非常清楚。 继续看图,将上下两张图
阅读全文
摘要:前言:在Java多线程中,中断一直围绕着我们,当我们阅读各种关于Java多线程的资料、书籍时,“中断”一词总是会出现,笔者对其的理解也是朦朦胧胧,因此非常有必要搞清楚Java多线程的中断机制。 1.Java中断机制是什么 Java 中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而
阅读全文
摘要:前言:在最新的阿里规范中强制使用ThreadPoolExecutor方式创建线程池,不允许使用Executors,因此有必要对ThreadPoolExecutor进行进一步了解。 1.ThreadPoolExecutor介绍 线程池类,直接看其入参最多的构造函数: 参数意义: corePoolSiz
阅读全文
摘要:前言:在对AQS框架进行分析的过程中发现了很多CAS操作,因此有必要对CAS进行一个梳理,也便更清楚的了解其原理。 1.CAS是什么 CAS,是compare and swap的缩写,中文含义:比较交换。 CAS操作包含三个操作数——需要读写的内存值(V)、预期原值[进行比较的值](A)和新值(B)
阅读全文
摘要:前言:AQS框架在J.U.C中的地位不言而喻,可以说没有AQS就没有J.U.C包,可见其重要性,因此有必要对其原理进行详细深入的理解。 1.AQS是什么 在深入AQS之前,首先我们要搞清楚什么是AQS。AQS全称是AbstractQueuedSynchronizer,我们直接查看AQS源码的注释。
阅读全文
摘要:前言:volatile关键字在面试中经常被问到,从volatile关键字可以引申出许多知识点,因此有必要对此进行总结。本文根据《深入理解Java虚拟机——JVM高级特性与最佳实践》中的相关章节,整理得来。 相关名词 TPS(Transactions Per Second):每秒事务处理数,衡量一个服
阅读全文
摘要:前言:在一次面试过程中被问到ThreadLocal,大家都知道ThreadLocal可以为每个线程单独提供一个副本,从而实现变量间的隔离。在ThreadLocal中set和get操作的key是什么,ThreadLocal又是怎样实现各线程间互不干扰的,本文通过调试ThreadLocal的源码来阐述这
阅读全文