ThreadLocal 概念 ThreadLocal 是给每个线程配一个专属的变量副本,实现线程间的数据隔离,避免并发冲突 set方法,设置当前线程中 ThreadLocal 的变量值 get 方法,…
ConcurrentHashMap 变化 JDK 1.7 1)包含一个 Segment 数组,一个 Segment 段包含一个 HashEntry 数组,每一个HashEntry节点相当于一个链表 2…
抽象队列同步器 AQS 概念 1)AQS是AbstractQueuedSynchronizer的简称,即抽象队列同步器 抽象:抽象类,只实现一些主要逻辑,有些方法由子类实现 队列:使用先进先出(FIF…
锁的存放位置 所有的锁都是基于对象的 每个 Java 对象都有一个对象头。如果是非数组类型,则用 2 个字宽来存储对象头,如果是数组,则会用 3 个字宽来存储对象头 对象头: 长度 内容 说明 一字宽…
JMM 概念 JMM 是一套规范,定义多线程环境下,Java 程序中的变量(特别是共享变量)如何被写入内存以及如何从内存中读取的规则,旨在解决由于多线程访问共享数据而可能引发的各种问题 注意:JMM …
使用多线程 创建线程三种方式 优先选择使用 Runnable 接口;当需要返回值时,使用 Callable 接口;仅在测试或简单实现时才选择继承 Thread 类 方式一:继承 Thread 类 通过…