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

2021-02-08 16:01:22 +08:00
 mikael

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

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

感觉一般的小项目,不考虑多线程一样完成。小项目就是实现业务即可,谁管你怎么实现的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/752384

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX