Java并发
文章平均质量分 80
学无止境jl
学习,运动,动手动脑!
展开
-
总结CyclicBarrier和CountDownLatch的异同
CyclicBarrier是循环(Cyclic)+Barrier(屏障),只有当线程达到一定数量时,才会继续执行。类似于组团旅游,打麻将三缺一,有的线程达到比较早,会一起等待还没有到达的线程。 CountDownLatch是主线程await阻塞,类似于一个“倒计时器”,工作线程每完成一个子任务都会调用countdown方法(state-1),直到state减到0,主线程才会继续。 它们都是java.util.concurrent包下的线程同步类,用于一个任务的分发处理。 不同点: 最大的差别在于,C原创 2021-08-14 15:22:57 · 380 阅读 · 0 评论 -
Java多线程进阶——Java并发包之锁的使用和实现原理
目录 Lock接口 Lock接口具备synchronized不具备的特性 队列同步器 独占锁和共享锁 以独占锁的实现为例 同步队列原理 独占锁获取与释放原理 共享锁的获取与释放 超时获取独占锁 可重入锁 ReentrantLock可重入锁 公平锁和非公平锁 为什么非公平锁性能好? 读写锁 写锁的获取与释放 读锁的获取和释放 锁降级 LockSupport工具 Condition接口 Lock接口 Lock lock=new ReentrantLock(); lo.原创 2021-08-05 16:35:53 · 184 阅读 · 0 评论 -
Java并发基础——初识线程
Java语言从诞生之初就多线程作为基础模块内置在jdk中,这是因为合理恰当地使用多线程,程序性能会有很大提升。 为什么要使用多线程?为什么恰当使用多线程性能就会提升? 底层硬件是由操作系统来调度的,而应用程序都是跑在操作系统上的,因此,有必要复习一下操作系统的发展史。 操作系统发展史 手工操作:纸带作为输入输出的媒介,机器是单线程式的,专一地干活。 批处理系统:计算机能够成批处理多个作业,机器是单线程式的,吞吐量增大,局限在于流水线式工作,顺序固定,CPU利用率低。 多道程序系统:多个程序同时加原创 2021-08-05 10:38:58 · 198 阅读 · 0 评论 -
Java并发机制与Java内存模型JMM
零、预知识 1. CPU、缓存、内存 如下图,是Intel i5-4258U的处理器和内存模型,Core表示处理器,即CPU,它包含了L1级缓存和L2级缓存,L3级缓存被两个处理器共享,CPU通过总线与内存打交道。 2. 引入缓存的原因 CPU速度很快,读写内存速度相对来说太慢了,引入缓存,就是为了解决CPU和内存速度不匹配的问题,从而提高计算机整体运行效率。 3.缓存的容量和速度 越靠近CPU的缓存,速度越快同时容量越小价格高,越靠近内存的缓存,速度越慢同时容量更大价格越低。 容量:L1原创 2021-07-31 00:10:17 · 191 阅读 · 0 评论