![](https://img-blog.csdnimg.cn/20210203084141644.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
多线程
文章平均质量分 76
多线程的基础使用,并发引发的问题,及各种锁机制
qq_三哥啊
一个热爱学习的爪哇程序员
展开
-
java并发关键知识速记
JVM运行时数据区域 JVM栈、native方法栈、寄存器、堆(字符串常量池)、元空间(常量池) JMM 内存不可见—内存屏障–HappensBefore、 锁机制 对象头–MarkWord–线程id+四种锁类型、锁升级的条件 ThreadLocal 同步的措施一般是加锁,这就需要使用者对锁有一定的了解,这显然加重了使用者的负担。 那么有没有一种方式可以做到,当创建一个变量后,每个线程对其进行访问的时候访问的是自己线程的变量呢?其实ThreadLocal就可以做这件事情 CAS 四个数据:对象内存+属性的偏原创 2021-07-11 11:46:17 · 130 阅读 · 1 评论 -
《Java并发编程之美》学习笔记及补充
第一部分 Java并发编程基础篇 第1章 并发编程线程基础 1.1 什么是线程 在讨论什么是线程前有必要先说下什么是进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。 进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。 操作系统在分配资源时是把资源分配给进程的,但是CPU资源比较特殊,它是被分配到线程的,因为真正要占用CPU运行的是线程,所以也说线程是CPU分配的基本单位。 一个进程中有多原创 2021-07-10 08:53:51 · 236 阅读 · 2 评论 -
ThreadPoolExecutor源码分析
主要代码 public class ThreadPoolExecutor extends AbstractExecutorService { private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static final int COUNT_BITS = Integer.SIZE - 3; private static final int CAPACITY = (1 << COUN原创 2021-07-08 00:33:01 · 61 阅读 · 0 评论