mikael
V2EX  ›  Java

大家在实际开发中真正使用过线程池吗?

  •  2
     
  •   mikael · Feb 8, 2021 · 7608 views
    This topic created in 2093 days ago, the information mentioned may be changed or developed.

    本人实际开发中就使用了一两次的线程池开发,主要就是开启线程读取数据库的操作。不知道大家有没有这方面的实际场景介绍下

    28 replies  •  2021-02-20 17:10:10 +08:00
    ElmerZhang
    ElmerZhang
    Feb 8, 2021
    1
    同时从多个下游服务取数据,用线程池并行取。
    SWALLOWW
    SWALLOWW
    Feb 8, 2021
    2
    批量扫串口
    ferock
    ferock
    Feb 8, 2021
    3
    池不一定。多线程经常用。。。多线程,爬基金数据,多线程扫描端口
    itechify
    itechify
    Feb 8, 2021 via Android
    4
    一些异步 job 会用上
    chendy
    chendy
    Feb 8, 2021
    5
    定时拉数据,数据量不是很大不需要上更严谨的任务框架,就线程池跑
    yamasa
    yamasa
    Feb 8, 2021
    6
    Java 现在搞并发的选择并不算很多,线程池就是一种典型的,池化思想其实应用很广泛。搞并发可以上 reactor,vertx (也是 actor 模式的实现),线程池。即便是 reactor java 本身,底层也是要用到线程池来实现所有异步操作的。在 loom 的 fiber 真正出在 lts 之前,我觉得这个现状不会改变太多。协程也不是什么场景都优于线程的。
    应用场景可太多了啊,说的完? web 服务肯定是并发的,无非是应用哪种 IO 模型的问题而已。线程池可以说无处不在。
    Jooooooooo
    Jooooooooo
    Feb 8, 2021❤️1
    7
    最常见的就是批量调下游
    wolfie
    wolfie
    Feb 8, 2021
    8
    接口不影响返回结果且执行时间长的扔异步,定时任务。
    java8
    java8
    Feb 8, 2021
    10
    消息推送
    stevenkang
    stevenkang
    Feb 8, 2021❤️2
    11
    1 、批量查询类,如接口方不支持批量查询,自己封装一个稍微改善一下;
    2 、比较耗时又不是很重要的数据处理,如日志记录到数据库或者通过网络传输记录,可以开一个线程慢慢写,不影响主线程;
    3 、聚合多个 RPC 接口数据,比如要查 10 个接口,平均每个接口 500 毫秒的话,不开线程查的话主线程就超过 5000 了。这种直接整上 10 个线程啥的并行查询,主线程平均仅需 500 毫秒就能返回结果。
    4 、
    guoyuchuan
    guoyuchuan
    Feb 8, 2021
    12
    1. 异步处理,将整体流程中的一些任务进行异步处理,可以使用线程池
    2. 针对某些资源,最近我们遇到的 sftp,就需要池化技术;
    presto
    presto
    Feb 8, 2021
    13
    批处理异步并发查询 Presto,并且根据业务转发到不同的 Presto 集群查询
    presto
    presto
    Feb 8, 2021
    14
    @stevenkang 我们就是这么做的查询报表 SQL,一个 SQL 随便加载数据就 TB 了
    mikael
    mikael
    OP
    Feb 8, 2021
    15
    @yamasa 我知道线程池无处不在,只是小弟我接触的面不多,所以想向各位老哥了解一下大家使用的场景
    daozhihun
    daozhihun
    Feb 8, 2021
    16
    这个用的还是挺多的,我最近在做的东西,我就用了好几种不同的线程池
    incompatible
    incompatible
    Feb 8, 2021 via iPhone
    17
    @stevenkang 第三个场景使用线程池有效的前提是主线程并发不能高,否则当线程池的线程被占满后,由主线程发起的异步任务依然要排队执行,起不到通过并行加速的效果
    zqjnew
    zqjnew
    Feb 8, 2021 via Android❤️1
    18
    可以把繁杂的计算交给固定数量线程池, 繁杂的 io 交给自动增长的线程池
    kingfalse
    kingfalse
    Feb 8, 2021 via Android
    19
    爬虫开发,请求解析这些,全在线程池
    gaigechunfeng
    gaigechunfeng
    Feb 8, 2021
    20
    强行在一个 app 上用过一次,还出了好几个 bug 。。。

    感觉一般的小项目,不考虑多线程一样完成。小项目就是实现业务即可,谁管你怎么实现的。
    cnzjl
    cnzjl
    Feb 9, 2021
    21
    好多场景呢,批量处理任务,批量下游发送
    Aaronsunny
    Aaronsunny
    Feb 9, 2021
    22
    好多吧。
    wangkai0351
    wangkai0351
    Feb 9, 2021
    23
    早期(十几年前)做 Windows 应用软件开发程序员的基本功吧
    haon
    haon
    Feb 9, 2021
    24
    异步任务用的比较多
    TeeMoCode
    TeeMoCode
    Feb 9, 2021
    25
    用到过,比如说从对象服务器上使用线程池下载多个文件,所有文件下载完后再进行后续处理;耗时而又无需前端感知的任务丢到线程池中异步完成
    cabing
    cabing
    Feb 18, 2021
    26
    异步解耦必用吧。
    线程池是基本的吧,都封装成包了。
    SkyLine7
    SkyLine7
    Feb 19, 2021
    27
    @stevenkang 学习了!
    sss666
    sss666
    Feb 20, 2021
    28
    resttemplate,异步任务
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5250 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11
    ♥ Do have faith in what you're doing.