多线程
文章平均质量分 85
璨若繁星
这个作者很懒,什么都没留下…
展开
-
多线程--ThreadPoolExecutor源码解析
ThreadPoolExecutor源码解析本文由马士兵教育连鹏举老师整理!1、常用变量的解释// 1. `ctl`,可以看做一个int类型的数字,高3位表示线程池状态,低29位表示worker数量private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));// 2. `COUNT_BITS`,`Integer.SIZE`为32,所以`COUNT_BITS`为29private static final int C转载 2020-05-11 15:05:50 · 142 阅读 · 0 评论 -
多线程--线程池
多线程--线程池线程池是什么: 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问...原创 2020-05-11 15:03:27 · 418 阅读 · 0 评论 -
多线程--AQS
多线程--AQS一、AQS详解二、源码阅读一、AQS详解什么是AQSAQS:AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包AQS的核心思想是,如果被请求的共享资源...原创 2020-05-07 15:23:49 · 279 阅读 · 0 评论 -
多线程--基础
回顾与深入--多线程1、前言2、基础回顾1、前言 今天是2020年4月28日,从大二接触Java到现在也已经快2年了,从JavaSE到高级框架,看起来好像学了很多,但其实仔细想想,我对大部分知识的认知都只停留在表面,只是知道怎么使用而已,甚至由于长时间没有相应的回顾与总结,某些基础的东西也已经想不起来了,填鸭子式的学习终究太过浮躁,所以,接下来的一段时间我希望自己能脚踏实地,打好地基,再去建...原创 2020-05-03 17:08:35 · 113 阅读 · 0 评论 -
多线程--volatile
多线程--volatile要想深入了解volatile,首先需要了解缓存一致性协议、指令重排和内存屏障缓存一致性协议由于CPU运行速度很快,内存运行速度很慢,频繁的读取内存中的数据显然效率不高,所以CPU会通过读取缓存行(一行64个字节,因为CPU寄存器就是64个字节)的方式将内存中可能使用的数据读入CPU内部。但在读取缓存过程中别的进程可能会修改数据,这样就会导致数据不一致的问题,...原创 2020-05-04 11:23:19 · 194 阅读 · 0 评论 -
多线程--synchronized
多线程--synchronized锁的类型:锁从宏观角度上分为悲观锁和乐观锁悲观锁:悲观锁是就是悲观思想,即认为写多,遇到并发写的可能性高,每次去拿数据的时候都认为别人会修改,所以每次在读写数据的时候都会上锁,这样别人想读写这个数据就会block直到拿到锁。java中的悲观锁就是Synchronized,AQS框架下的锁则是先尝试cas乐观锁去获取锁,获取不到,才会转换为悲观锁,如Ret...原创 2020-05-04 11:20:53 · 144 阅读 · 0 评论