上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
  2020年2月2日
摘要: 线程池主要解决两个问题:①线程池中线程是可复用的,节省了创建销毁线程的开销;②线程池提供资源限制和管理手段,如线程的个数,动态新增线程 一、ThreadPoolExecutor 1.变量 //高3位表示线程池状态,低29位表示线程个数 private final AtomicInteger ctl 阅读全文
posted @ 2020-02-02 17:49 FFStayF 阅读(558) 评论(0) 推荐(0) 编辑
  2020年1月31日
摘要: 一、ConcurrentLinkedQueue——无界非阻塞队列(链式存储) ConcurrentLinkedQueue内部的队列是单链表实现的, 1.链表节点:静态内部类Node,没有其他设计,仅unsafe保证原子性 private static class Node<E> { volatile 阅读全文
posted @ 2020-01-31 15:50 FFStayF 阅读(285) 评论(0) 推荐(0) 编辑
  2020年1月22日
摘要: 两个锁都是依赖AQS实现的,方法基本是Sync的封装,主要看Sync的设计实现, 一、可重入独占锁ReentrantLock 1.静态内部抽象类Sync //继承AQS abstract static class Sync extends AbstractQueuedSynchronizer { p 阅读全文
posted @ 2020-01-22 17:08 FFStayF 阅读(319) 评论(0) 推荐(0) 编辑
  2020年1月9日
摘要: AbstractQueuedSynchronizer抽象同步队列是一个抽象类,简称AQS,是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的 AQS的数据结构:逻辑结构:双向队列,存储结构:链式存储,即包含头尾指针head、tail及节点Node。Node结构体包含前驱节点prev、后继节 阅读全文
posted @ 2020-01-09 22:50 FFStayF 阅读(177) 评论(0) 推荐(0) 编辑
  2020年1月8日
摘要: LockSupport类是个工具类,主要作用是挂起和唤醒线程,是创建锁与其他同步类的基础 LockSupport类与每个使用它的线程都会关联一个许可证,默认情况下调用LockSupport类的方法的线程是不持有许可证的。LockSupport是unsafe类park、unpark方法的封装使用。 一 阅读全文
posted @ 2020-01-08 22:46 FFStayF 阅读(218) 评论(0) 推荐(0) 编辑
  2020年1月7日
摘要: CopyOnWriteArrayList是一个线程安全的ArrayList,对其修改操作都是在底层的一个复制的数组上进行的,也就是使用了写时复制策略。 一、变量与构造方法 /** The lock protecting all mutators */ final transient Reentran 阅读全文
posted @ 2020-01-07 09:17 FFStayF 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 一、原子变量操作类以AtomicLong为例 AtomicLong是原子性递增或者递减类,基本上所有的方法都是对unsafe实例的方法的封装使用,用户不能对unsafe直接使用,原子操作类封装后可直接供用户使用。 1.初始化及变量 // setup to use Unsafe.compareAndS 阅读全文
posted @ 2020-01-07 03:17 FFStayF 阅读(354) 评论(0) 推荐(0) 编辑
  2020年1月6日
摘要: 一、ThreadLocal类 ThreadLocal可以视作为一个工具类,它并不包含线程变量,线程变量都存储在各自Thread实例中ThreadLocals变量中,实现了线程变量内存隔离,保证线程安全(以空间换取的)。Thread类中变量 /* ThreadLocal values pertaini 阅读全文
posted @ 2020-01-06 18:35 FFStayF 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 一、cache缓存 cache与主存之间是以块为单位读写的,这样设计是为了符合程序运行的局部性原理--时间局部性原理与空间局部性原理(参见《计算机组成原理》) 二维数组行遍历比列遍历要快,是由于二维数组是按行存储的,cache从主存中读入块,会将同行相邻元素一起写入cache,导致行遍历cache命 阅读全文
posted @ 2020-01-06 03:34 FFStayF 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 一、Unsafe类仅能被BootstrapClassLoader加载的类实例化,用户建的类默认都是ApplicationClassLoader加载的,实例化Unsafe时会报错(可直接管理内存,不对用户开放使用)。可以用反射实例化(方式一)。补充:加启动参数指定当前类由BootstrapClassL 阅读全文
posted @ 2020-01-06 03:06 FFStayF 阅读(311) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页