最新 最热

并发编程系列-Semaphore

Semaphore,如今通常被翻译为"信号量",过去也曾被翻译为"信号灯",因为类似于现实生活中的红绿灯,车辆是否能通行取决于是否是绿灯。同样,在编程世界中,线程是否能执行取决于信号量是否允许。...

2023-08-16
2

CountDownLatch、CyclicBarrier、Semaphore 的原理以及实例总结

在Java多线程编程中,有三种常见的同步工具类:CountDownLatch、CyclicBarrier、Semaphore。这些工具类使得我们可以在多个线程之间进行协调,实现更高效的并发处理。本文将对它们的原理和实例进行分析总结。...

2023-05-05
2

Java 根据某个 key 加锁的实现方式

日常开发中,有时候需要根据某个 key 加锁,确保多线程情况下,对该 key 的加锁和解锁之间的代码串行执行。 大家可以借助每个 key 对应一个 ReentrantLock ,让同一个 key 的线程使用该 lock 加锁;每个 key 对应一个 Semaphor...

2023-03-16
2

使用Semaphore限制资源并发访问的线程数

由于知识的原因,上述例子以及CountDownLatch和Semaphore的比较上会存在不足,如果有问题请大家指正,也希望大家能够提供两者其它方面的不同之处,一起学习分享。...

2023-02-23
5

三个线程交替打印ABC100次问题思考之二,使用信号量的优雅实现

使用Semaphore的tryAcquire()方法实现线程间的加锁操作,通过release()方法给下一个待执行线程的信号量添加一个许可证,由此保证三个线程顺序执行,初始化A线程信号量时添加一个默认许可证,让A线程第一个执行...

2023-02-01
2

深入浅出Semaphore

Semaphore 信号量,也就是我们常说的信号灯,semaphore 可以控制同时访问的线程个数,通过 acquire 获取一个许可,如果没有就等到,通过 release 释放一个许可。有点类似限流的作用。比如某商场只有 5 个停车位,每个停车位只能...

2023-01-11
2

多线程开发实用技巧

动态拓展容量 触发方式,我们可以通过 apollo 配置或者通过延迟任务定期扫描自动拓展

2022-12-06
2

基于STM32和FreeRTOS的二值信号量实现任务同步

在嵌入式开发中,只要你使用实时操作系统,那么使用信号量可以说必不可少。我们常使用信号量进行同步或互斥。

2022-12-03
3

同步工具(未完待更新)

在JDK1.7中,同步工具主要包括CountDownLatch(一次性栅栏)、Semaphore(信号量)、CyclicBarrier(循环同步栅栏)、Exchanger(线程间交换器)和Phaser。下面的篇幅中,将依次讲述每种同步工具的概念、用法和原理。...

2022-11-29
4

一个关于同步接口并发控制的简单demo

方案:线程池(实现并发)+CountDownLatch(实现阻塞主线程,并发结束返回结果)+Semaphore (实现并发控制)

2022-10-28
1