多线程
文章平均质量分 89
树叶要走风怎么挽留
六块腹肌的程序员小哥哥
展开
-
进阶学习之旅-多线程之阻塞队列
阻塞队列ArrayBlockingQueueLinkedBlockingQueueDelayQueueSynchrosQueue操作方法插入元素add/offer()/put删除/获取元素remove/poll/take源码分析public class BlockingQueueDemo{ // add method /** * 将元素插入队列中 * @param e * @return */ pu原创 2021-09-22 16:43:08 · 170 阅读 · 0 评论 -
进阶学习之旅-多线程之深入concurrentHashMap
文章目录学习内容不同版本区别基本的数据结构put的实现过程源码分析源码中位运算巧妙的应用初始化tab以及sizeCtl的作用初始化tabsizeCtl的作用addCount是做什么的?CounterCell为什么基于CounterCell来计算容器大小?扩容扩容源码分析将当前的链表分为高低链,提高扩容的效率为什么可以提高扩容的效率?学习内容总结学习内容put的实现过程不同版本区别源码分析为什么使用CounterCell来计算容器大小?学习内容总结不同版本区别HashMap?Concurr原创 2021-09-14 22:09:15 · 378 阅读 · 0 评论 -
进阶学习之旅-多线程之JUC工具类原理及Semaphore使用及源码分析
文章目录学习内容Semaphore的使用停车场案例源码分析学习内容Semaphore的使用Semaphore源码分析Semaphore的使用semaphore 常用于限流的使用他使用了AQS的共享锁在使用的过程中可以通过构造参数指定公平锁还是非公平锁停车场案例/** * @PackageName: com.raven.multithreaded.concurrentutil.semaphore * @ClassName: SemaphoreTest * @Blame: rave原创 2021-09-01 20:24:03 · 365 阅读 · 0 评论 -
进阶学习之旅-多线程之JUC工具类原理及CountDownLatch、CyclicBarrier使用及源码分析
文章目录学习内容CountDownLatch的使用计数器demo模拟并发DemoCountDownLatch源码分析CountDownLatch源码分析流程图解CyclicBarrier使用CyclicBarrierDemo 模拟所有文件上传完毕后进行数据分析CyclicBarrier源码分析学习内容CountDownLatch的使用CountDownLatch源码分析CyclicBarrier的使用CyclicBarrier源码分析CountDownLatch的使用CountDownLa原创 2021-09-01 20:22:41 · 291 阅读 · 0 评论 -
进阶学习之旅-多线程之JUC工具类原理及Condition使用及源码分析
文章目录学习内容condition的使用demo案例condition同步过程AQS队列和conditon队列状态变化流程AQS队列的作用源码分析学习内容condition的使用源码分析condition的使用我们通过syncsynchronize 、wait、notify、notifAll 可以完成线程间通信,完成生产者消费者功能同样也可以通过Lock、condition(await、signal、signalAll)实现demo案例ConditionWait/** * @Pack原创 2021-09-01 20:10:05 · 327 阅读 · 0 评论 -
进阶学习之旅-多线程之深入AQS(Lock锁基本使用、ReentrantLock重入锁、AQS原理分析、AQS源码分析)
文章目录学习内容J.U.CLock的基本使用ReentrantLock(重入互斥锁)什么是重入锁?Reentrentlock 实现过程类图引用关系Lock.lock()-UML时序图基于ReentrantLock进行AQS源码分析多个线程争夺锁过程公平锁和非公平锁区别线程中断回顾ReentrantLock和Synchronized的区别学习内容了解J.U.CLock的基本使用ReentrantLock重入锁AQS原理分析AQS源码分析J.U.Cj.u.c(java.util.concur原创 2021-08-30 17:31:27 · 378 阅读 · 0 评论 -
进阶学习之旅-多线程之内存可见性的本质(volatile、JMM内存模型、Happens-Before原则)
文章目录学习内容初步认识Volitalevolatile的作用如何保证可见性可见性到底是什么?从硬件层面了解内存可见性的本质最大化的利用CPU资源CPU的高速缓存缓存一致性协议(MESI)MESI 带来的CPU阻塞问题内存屏障指令什么是JMM?java内存模型语言级别的内存屏障Happens-Before规则volatile规则程序的顺序规则传递性规则线程启动规则join规则sync 监视器锁学习内容初步认识Volitale从硬件层面了解可见性的本质什么是JMMHappens-Before规则原创 2021-08-17 16:57:49 · 541 阅读 · 0 评论 -
进阶学习之旅-多线程之Synchronized(Synchronized的使用、锁的存储、锁升级原理、wait¬ify)
文章目录1.学习收获2.学习方法3.如何保证线程安全性4.synchronized的基本使用5.锁存储以及锁升级原理?5.1锁的实现5.1.1偏向锁5.1.2轻量级锁5.1.3重量级锁5.2锁在内存中的存储5.3锁升级原理**synchronized在不同情况下使用不同的锁:**6.wait 和 notify1.学习收获学习方法如何保证线程安全性?Synchronized的基本使用锁的存储Synchronized锁的升级原理wait/notify实现线程通信2.学习方法场景->需原创 2021-08-14 20:11:08 · 488 阅读 · 0 评论 -
进阶学习之旅-多线程之多线程基础(应用场景、生命周期、中断、复位)
文章目录1.学习内容2.学习方法3.并发的发展历史3.1真空管/穿孔打卡3.2晶体管/批处理系统3.3集成电路/多道程序设计4.线程在java中的应用5.多线程的实际应用场景6.并发基础6.1 线程的声明周期6.2 线程中断6.3 线程的复位6.4中断一个处于阻塞状态的线程6.5总结1.学习内容并发编程的发展历史线程在java中的应用多线程的实际应用场景线程的生命周期线程的基本操作-启动/停止2.学习方法公式:场景->需求->解决方案->应用->原理例子:Do原创 2021-08-13 19:57:23 · 328 阅读 · 0 评论