多线程使用场景

项目什么地方使用了多线程

CountDownLatch

(闭锁,倒计时锁)

一般用于线程的同步协作,等待所有线程完成倒计时后才能一起继续执行

构造参数初始化等待计数值

await()等待计数归零

countDown()用来让计数减一

调用await()的线程必须等待其他线程调用countDown()将计数器归零才能继续执行

请添加图片描述

多线程使用场景一

ES数据的批量导入(数据库数据的批量迁移)

查询总条数,计算总页数,添加CountDownLatch()锁

按页进行批量导入

多线程批量导入,每次导入完成countDownLatch计数器–

导入完成后,进行解锁

多线程使用场景二

微服务长调用(数据汇总)

如果不使用多线程,串行执行所有接口时长相当于所有接口消耗时长之和

使用多线程只需要等待执行最久的接口即可

使用线程池.submit()方法可以拿到一个future类型的返回值

future.get()拿到的就是线程中方法的返回值

多线程使用场景三

异步调用

保证功能的响应速度,把一些不会影响功能的业务进行异步执行(保存,上架等等)

@Async(可选(线程池))

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值