SpringBoot_JUC工具使用

本文介绍了如何在SpringBoot项目中使用Semaphore信号量控制耗时任务并发,CountDownLatch倒计时器实现多线程同步,以及CyclicBarrier循环屏障在Excel多sheet计算汇总中的应用。通过实例演示了这些Java并发工具在提高效率和线程协作中的关键作用。

前言

记录springboot项目环境下JUC工具的使用场景

Semaphore[信号量]

信号量,用来限制能同时访问共享资源的线程上限

示例–控制耗时任务执行的线程数


/**
 *  控制耗时任务执行的线程数
 */
@Api(tags = "Semaphore测试")
@RestController
@RequestMapping("/semaphore/test")
public class SemaphoreTestController {
   
   
    private static final Logger LOGGER = LoggerFactory.getLogger(SemaphoreTestController.class);
    @Autowired
    private ThreadPoolTaskExecutor taskExecutor;
    private Semaphore semaphore = new Semaphore(3);

    @PostMapping("/doTask")
    public ApiResult<String> test() {
   
   
        if (semaphore.availablePermits() == 0) {
   
   
            LOGGER.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值