java并发---AQS【简介】 发表于 2020-07-25 | 分类于 java并发 | 简介AQS(AbstractQueuedSynchronizer)就是一个抽象的队列同步器,它是用来构建锁或者其他同步组件的基础框架,它维护了一个volatile int state来表示同步状态,通过内置的FIFO队列来完成线程等待排队。 AQS的设计是基于模板方法设计的,可供实现的模板方法基本上 ... 阅读全文 »
java并发--FutureTask 发表于 2020-07-25 | 分类于 java并发 | 1. 背景与简介Future是Java执行异步任务时的常用接口。我们通常会往ExecutorService中提交一个Callable/Runnable并得到一个Future对象,Future对象表示异步计算的结果,支持获取结果,取消计算等操作。在Java提供的Executor框架中,Future的默 ... 阅读全文 »
java并发--深入分析 ThreadLocal 内存泄漏问题 发表于 2020-07-25 | 分类于 java并发 | 前言ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用 ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析 ThreadLocal 内存泄漏的问题 Threa ... 阅读全文 »
java并发--ThreadLocal原理 发表于 2020-07-25 | 分类于 java并发 | ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 从数据结构入手下图为ThreadLocal的内部结 ... 阅读全文 »
java并发---线程和锁 发表于 2020-07-25 | 分类于 java并发 | 深入分析 java 8 编程语言规范:Threads and Locks创建时间: 2017-07-05 00:00:00 2018-02-27 评论区的 xupeng.zhang 提出了一个我之前没碰到过的情况,推翻了我之前的一个错误理解,修改了相应的内容。 2017-11-28 更新了 17. ... 阅读全文 »