多线程
城中行
不要停止思考.
展开
-
Semaphore 机制及源码分析
前情提要: https://blog.csdn.net/qq_32140607/article/details/102669386https://blog.csdn.net/qq_32140607/article/details/102796524首先交代概念Semaphore是一个计数信号量,Semaphore经常用于限制获取资源的线程数量;AbstractQu...原创 2019-10-31 19:14:44 · 171 阅读 · 0 评论 -
Lock 源码分析 --ReentrantLock
ReentrantLock 重入锁,从这里开始解析Lock的源码及机制首先从一个demo开始,这段代码循环5次,每次起一个线程,获取锁,执行逻辑,解锁.这篇的重点不在这个demo,无需过度关注.public class ThreadMain { private static int sum=0; private static ReentrantLock lock=...原创 2019-10-29 20:13:17 · 241 阅读 · 0 评论 -
synchronized 锁膨胀及相关知识点
synchronized 关键字在jdk1.6之前使用的是重量级锁,在1.6之后引入自旋与锁膨胀机制,降低了性能损耗.这里以jdk1.6以后版本为前提.CAS操作CAS的全称为Compare And Swap,直译就是比较交换。是一条CPU的原子指令,作用就是先比较两个值是否相等,如果相等则原子的更新某个位置的值,基于硬件平台的汇编指令实现.CAS 操作包含三个操作数 :内存偏移量位置...原创 2019-10-22 15:02:02 · 615 阅读 · 0 评论 -
多线程相关基本知识
本文涉及知识点: 并发与并行概念,cpu三级缓存基本概念,缓存一致性运转流程,volatile关键词可见性的实现方式等首先区分两个概念,并发与并行并行:只存在于cpu多核的场景,无论微观还是宏观都是同时运行多个指令并发:同一个时间点只会有一个指令在运行,cpu通过时间片轮换的方式使得多个指令快速交替运行介绍cpu的缓存与主存关系cpu缓存分三级,一级缓存有两个,一个是...原创 2019-10-16 19:42:10 · 171 阅读 · 0 评论