文章 67
评论 61
浏览 75441
并发工具类 ---Semaphore

并发工具类 ---Semaphore

模拟场景: 北京开往邯郸的火车K7761开始售票,在9号站台验票进站,进站口只有三个,许许多多的乘客排成长队验票进站。 那么此时三个进站口就是有限的公共资源,乘客们就是线程。 Semaphore信号量是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 public class testMain { public static void main(String[] args) { int ticketGate = 3;//检票口 int numberOfPassengers = 9527;//乘客数量d Semaphore semaphore = new Semaphore(ticketGate); //允许进入3人,剩下的人想进入时,需等待前面的人已经进入站。 for (int i = 0; i < numberOfPassengers; i++) { new Through(i,semaphore).start(); } } static class Through extends Thread{ private int n; private ....

多线程之倒计时计数器 CountDownLatch

多线程之倒计时计数器 CountDownLatch

上篇回顾:多线程回环栅栏 CyclicBarrier 使用场景 假设有一个列表,多选之后,点击压缩。此时后台肯定是多线程跑压缩任务,那我们就可以使用CountDownLatch来在全部压缩完成之后处理一些事情。 示例代码 public class testMain { public static void main(String[] args) { // 初始化计数 AtomicInteger count = new AtomicInteger(0); // 创建 10 个线程 ExecutorService es = Executors.newFixedThreadPool(10); // 设置 CountDownLatch 为 10 CountDownLatch countDownLatch = new CountDownLatch(10); for (int i = 0; i < 10; i++) { es.execute(() -> { // 每个线程累计增加 1000 次 for (int j = 0; j < 1000; j++) { count.addA....

多线程之同步屏障CyclicBarrier的使用

多线程之同步屏障CyclicBarrier的使用

工欲善其事,必先利其器,要想搞懂多线程,首先要把jdk自带的多线程工具搞懂

阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?

阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?

工作3—5年后,程序员们的成长将迈入一个全新阶段。这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向。

记录精彩的坎坷人生,经营属于自己的世界!