Java并发工具包
区别于Java多线程的常用类,工具包只是辅助多线程编程。
[靖哥哥]
持续优化~
展开
-
JUC并发工具包之Phaser Part3 场景使用
文章目录概览模拟场景定义不同的阶段(每个阶段运行的任务不同)预先定义线程池,设置5个线程Phaser1Phaser2Phaser3Phaser4组织4个阶段结果输出输出说明格式执行流程总结概览本文我们将看一看Java并发包中的Phaser,正如JDK中描述那样,它和CyclicBarrier、CountDownLatch提供的功能很类似,但是多了一些使用场景。A reusable synchronization barrier, similar in functionality to CyclicB原创 2020-07-06 22:32:58 · 669 阅读 · 0 评论 -
JUC并发工具包之Phaser Part2 源码分析
文章目录预备知识主要方法new Phaser()register()即doRegister(int registrations)internalAwaitAdvance()arriveAndAwaitAdvance()其他方法Phaser相对于CyclicBarrier和CountDownLatch的优势写在最后预备知识读Phaser的源码很大的一个特点就是位运算太多,还有就是QNode使用的是Treiber Stack,建议先看下另外几篇文章,会很有帮助。JUC并发工具包之Phaser Part1原创 2020-07-06 22:32:07 · 515 阅读 · 0 评论 -
JUC并发工具包之Phaser Part1 结构与状态
JUC并发工具包之Phaser Part1 结构与状态文章目录预备知识主要属性重要属性stateevenQ & oddQ一个内部类QNode位运算演算使用到的变量状态的二进制位分布unarrived值的计算parties值的计算phase值的计算arrived值的计算预备知识Java常用的二进制位操作(左移、右移、无符号右移、加法、减法)Java中的位掩码BitMask理解与使用Treiber Stack主要属性// 状态变量,用于存储当前阶段phase、参与者数parties、未原创 2020-07-06 22:29:07 · 425 阅读 · 0 评论 -
JUC并发工具包之Semaphore
文章目录Semaphore (JDK)Timed Semaphore (Apache Commons)Semaphore vs. MutexCodeRepoSemaphore (JDK)我们使用semaphore去限制获取特定资源的并发线程数量。下面的例子中,我们实现了一个简单的登录队列来限制登入系统的用户数量:class LoginQueueUsingSemaphore { private Semaphore semaphore; public LoginQueueUsin原创 2020-06-18 23:02:39 · 738 阅读 · 0 评论 -
JUC并发工具包之CyclicBarrier & CountDownLatch的异同
1、介绍本文我们将比较一下CyclicBarrier和CountDownLatch并了解两者的相似与不同。2、两者是什么当谈到并发,将这两者概念化的去解释两者是做什么的,这其实是一件很有挑战的事情。首先,这两者都是管理多线程的工具。其次,两者都具备让一个或多个线程等待执行的功能。2.1 CountDownLatchCountDownLatch可以使一个线程阻塞等待其它多个线程执行到countDown方法处,直到最后的count属性递减为0。我们可以把这想象成餐馆中待上菜的餐盘(西餐中的餐原创 2020-06-17 19:23:30 · 758 阅读 · 0 评论 -
JUC并发工具包之CyclicBarrier
1、简介CyclicBarrier是一个同步器,允许多个线程等待彼此直到达一个执行点(barrier)。CyclicBarrier都是在多个线程必须等到彼此都到达同一个执行点后才执行一段逻辑时才被使用。barrier被叫做cyclic是因为阻塞线程恢复后可以重复使用barrier2、使用CyclicBarrier的构造器很简单,传入一个整形表示线程数再调用barrier实例的await()方法表示所有线程要到达这一共同的执行点。public CyclicBarrier(int parties原创 2020-06-16 22:14:41 · 1540 阅读 · 0 评论 -
JUC并发工具包之CountDownLatch
1、介绍本文将介绍CountDownLatch并给出实践中的几个例子,通过使用CountDownLatch我们可以让一个线程阻塞直到其他一个或多个线程执行完成。A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.2、并发编程中的用法简单的说,CountDownLatch有一个counter原创 2020-06-15 21:14:27 · 650 阅读 · 0 评论