![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发
文章平均质量分 90
小乐乐的天台
这个作者很懒,什么都没留下…
展开
-
无锁并发框架---Disruptor
无锁并发框架---Disruptor1、Disruptor框架简介1.1、Disruptor是干什么的1.2、核心设计原理1.3、底层数据结构1.4、Disruptor设计成数组+序列号的优势是什么?1.5、Disruptor内部的一些构件简介1.6、Disruptor的等待策略2、Disruptor框架的使用3、Disruptor框架的重点方法解析3.1、ByteBuffer.next()3.2、Disruptor.start()3.3、ByteBuffer.publish()1、Disruptor框架原创 2021-10-19 21:30:37 · 1278 阅读 · 0 评论 -
并发编程之Future&ForkJoin框架原理分析
并发编程之Future&ForkJoin框架原理分析原创 2021-10-19 16:06:50 · 300 阅读 · 0 评论 -
并发编程之定时任务&定时线程池
并发编程之定时线程池&定时任务1、定时线程池1.1、定时线程池的由来1.2、ScheduledThreadPoolExecutor的api1.2.1、schedule1.2.2、scheduleAtFixedRate1.2.3、scheduleWithFixedDelay1.3、定时线程池应用场景2、定时线程池源码简析2.1、scheduleAtFixedRate2.2、delayedExecute2.3、ensurePrestart2.4、ScheduledThreadPoolExecutor的r原创 2021-10-18 23:36:19 · 1356 阅读 · 0 评论 -
Executor线程池原理与源码简析
Executor线程池原理与源码简析1、线程、协程与线程池1.1、什么是线程?1.2、什么是协程1.3、线程池1.3.1、什么是线程池?1.3.2、什么时候使用线程池?1.3.3、线程池优势1.3.4、线程池的参数1.3.5、线程池的大致运行过程1、线程、协程与线程池1.1、什么是线程?线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的KLT模型,Java线程与OS线程保持1:1的映射关系,也就是说有一个java线程也会在操作系统里有 一个对应的线程。Java线程有以原创 2021-10-18 23:07:45 · 125 阅读 · 0 评论 -
Java并发---ConcurrentHashMap和CopyOnWriteArrayList
Java并发---ConcurrentHashMap和CopyOnWriteArrayList1、ConcurrentHashMap1.1、jdk1.7的ConcurrentHashMap1.2、jdk1.8的ConcurrentHashMap1.2.1、jdk1.8HashMap的协助扩容2、CopyOnWriteArrayList1、ConcurrentHashMap1.1、jdk1.7的ConcurrentHashMapjdk1.7的 ConcurrentHashMap 的数据结构是在真正的h原创 2021-10-15 11:09:51 · 139 阅读 · 0 评论 -
Java并发---HashMap的奇怪知识点
HashMap的奇怪知识点1、hashmap初始化的容量会发生变化吗?2、hashmap初始化的容量为什么会发生变化?3、jdk7的hashmap扩容死锁问题。4、为什么hashmap的扩展因子是0.75?5、jdk8的hashmap数组与红黑树转换。6、jdk8如何解决jdk7扩容死锁问题。1、hashmap初始化的容量会发生变化吗?注意:这里用的是1.7的jdk。public static void main(String[] args) { Map map = new HashMap(1原创 2021-10-15 10:39:12 · 155 阅读 · 0 评论 -
Java并发工具包二---CountDownLatch、CyclicBarrier、Executors
Java并发工具包---CountDownLatch、CyclicBarrier、Executors1、CountDownLatch1.1、什么是CountDownLatch1.2、使用场景1.3、CountDownLatch的api1.4、CountDownLatch如何工作?1.5、CountDownLatch中api反着用2、CyclicBarrier2.1、CyclicBarrier是什么?2.2、CyclicBarrier的api2.3、代码示例3、Exchanger3.1、Exchanger是什原创 2021-10-15 10:22:41 · 143 阅读 · 0 评论 -
Java并发工具包一---Semaphore
Java并发工具包---Semaphore1、什么是Semaphore?2、Semaphore的方法2.1、构造方法2.2、重要方法3、Semaphore简单应用4、源码简析4.1、acquire() 方法4.1.1、tryAcquireShared4.2、release()4.2.1、tryReleaseShared()4.2.2、doReleaseShared()1、什么是Semaphore?Semaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目(就是对一个资源的访问并发原创 2021-10-15 10:01:14 · 173 阅读 · 0 评论 -
Java同步互斥访问二(AQS框架)--> BlockingQueue
Java同步互斥访问二(AQS框架)--> BlockingQueue1、BlockingQueue简介1.1、什么是BlockingQueue2、源码(ArrayBlockingQueue)2.1、构造方法2.2、put方法2.2.1、await2.2.2、addConditionWaiter()2.2.3、2.3、take()2.3.1、enqueue1、BlockingQueue简介1.1、什么是BlockingQueueBlockingQueue,也叫阻塞队列,它是线程通信的一个工具,在任意原创 2021-10-14 17:49:06 · 107 阅读 · 0 评论 -
Java同步互斥访问二(AQS框架)--> ReentrantLock
Java同步互斥访问二(AQS框架)--> ReentrantLock1、ReentrantLock2、源码分析2.1、公平锁2.1.1、加锁2.1.2、解锁2.2、非公平锁10、辅助知识10.1、CAS抢锁实例1、ReentrantLock四大核心原理:自旋、Locksupport、CAS、队列。Locksupport.park(); 阻塞Locksupport.unpark(); 唤醒指定线程2、源码分析2.1、公平锁2.1.1、加锁1、.进来之后我们发现lock方法下面有这原创 2021-10-14 15:16:16 · 160 阅读 · 0 评论 -
Java同步互斥访问一(synchronized)
Java同步互斥访问一(synchronized)1、前置概念1.1、什么是同步互斥访问?1.2、Java中实现同步互斥访问的方法1.3、Java中为什么要提供两种同步器(synchronized 和 Lock)2、synchronized2.1、静态方法上加锁和普通代码块加锁的区别2.2、synchronized锁的信息在对象的什么地方2.3、通过mark word看synchronized锁2.4、测试 synchronized 锁的升级10、辅助知识10.1、synchronized 三个锁阶段的ha原创 2021-10-03 09:38:48 · 1204 阅读 · 0 评论 -
CPU缓存一致性协议MESI
CPU缓存一致性协议MESI1、MESI1.1、什么是缓存一致性协议MESI1.2、MESI的缓存行1.3、volatile对MESI的应用2、MESI优化和他们引入的问题10、辅助知识10.1、当加上CPU时Java代码的执行过程10.2、总线锁10.3、缓存行伪共享10.3.1、什么是伪共享?10.3.2、怎么解决伪共享?1、MESI1.1、什么是缓存一致性协议MESI现在的计算机一般都是多CPU多核的,所以就会出现多个CPU或者多个核在同一时间访问同一个变量的情况,缓存一致性协议就是来解决当多原创 2021-10-01 13:55:46 · 445 阅读 · 0 评论 -
happens-before原则和内存屏障
happens-before原则和内存屏障1、内存模型与指令重排1.1、Java内存模型1.2、指令重排序1.3、as-if-serial语义1.4、happens-before 原则1.4.1、什么是happens-before 原则1.4.2、为什么要有happens-before 原则1.4.3、happens-before 原则的八大子原则2、内存屏障(了解即可)2.1、Intel硬件提供的内存屏障2.2、volatile禁止指令重排序示例1、内存模型与指令重排1.1、Java内存模型每个线原创 2021-10-01 09:12:26 · 622 阅读 · 0 评论 -
JMM、数据同步以及并发编程的三大问题
JMM1、JMM1、什么是JMM1、JMM1、什么是JMMJava内存模型(Java Memory Model简称JMM)是一种抽象的概念,它并不真实存在,他描述的是一组规则或规范原创 2021-10-01 09:11:55 · 172 阅读 · 0 评论 -
操作系统系统底层工作总体认识
操作系统系统底层工作总体认识1、计算机整体介绍1、现代计算机的大致运行过程2、计算机的五大核心组成部分3、CPU指令结构4、CPU缓存结构1、计算机整体介绍1、现代计算机的大致运行过程计算机在运行时,先从内存中取到一条指令,通过控制器的译码,按照指令的要求进行逻辑处理及加工,然后在按地址将结果送到内存中,接着再取出第二条,再控制器的指挥下完成操作,依次往复,直到遇到停止指令。按照程序的顺序逐步的取出指令去操作,自动完成指令中的具体逻辑处理,是计算机最基本的工作模型。这一原理最初是由美籍匈牙利数学家原创 2020-08-10 23:57:17 · 690 阅读 · 0 评论