本人实际开发中就使用了一两次的线程池开发,主要就是开启线程读取数据库的操作。不知道大家有没有这方面的实际场景介绍下
1
ElmerZhang 2021-02-08 16:03:54 +08:00
同时从多个下游服务取数据,用线程池并行取。
|
2
SWALLOWW 2021-02-08 16:05:26 +08:00
批量扫串口
|
3
ferock 2021-02-08 16:06:41 +08:00
池不一定。多线程经常用。。。多线程,爬基金数据,多线程扫描端口
|
4
oneisall8955 2021-02-08 16:06:49 +08:00 via Android
一些异步 job 会用上
|
5
chendy 2021-02-08 16:08:11 +08:00
定时拉数据,数据量不是很大不需要上更严谨的任务框架,就线程池跑
|
6
yamasa 2021-02-08 16:18:47 +08:00
Java 现在搞并发的选择并不算很多,线程池就是一种典型的,池化思想其实应用很广泛。搞并发可以上 reactor,vertx (也是 actor 模式的实现),线程池。即便是 reactor java 本身,底层也是要用到线程池来实现所有异步操作的。在 loom 的 fiber 真正出在 lts 之前,我觉得这个现状不会改变太多。协程也不是什么场景都优于线程的。
应用场景可太多了啊,说的完? web 服务肯定是并发的,无非是应用哪种 IO 模型的问题而已。线程池可以说无处不在。 |
7
Jooooooooo 2021-02-08 16:20:17 +08:00 1
最常见的就是批量调下游
|
8
wolfie 2021-02-08 16:26:47 +08:00
接口不影响返回结果且执行时间长的扔异步,定时任务。
|
10
java8 2021-02-08 16:51:03 +08:00
消息推送
|
11
stevenkang 2021-02-08 17:08:17 +08:00 2
1 、批量查询类,如接口方不支持批量查询,自己封装一个稍微改善一下;
2 、比较耗时又不是很重要的数据处理,如日志记录到数据库或者通过网络传输记录,可以开一个线程慢慢写,不影响主线程; 3 、聚合多个 RPC 接口数据,比如要查 10 个接口,平均每个接口 500 毫秒的话,不开线程查的话主线程就超过 5000 了。这种直接整上 10 个线程啥的并行查询,主线程平均仅需 500 毫秒就能返回结果。 4 、 |
12
guoyuchuan 2021-02-08 17:13:57 +08:00
1. 异步处理,将整体流程中的一些任务进行异步处理,可以使用线程池
2. 针对某些资源,最近我们遇到的 sftp,就需要池化技术; |
13
presto 2021-02-08 17:19:01 +08:00
批处理异步并发查询 Presto,并且根据业务转发到不同的 Presto 集群查询
|
14
presto 2021-02-08 17:20:50 +08:00
@stevenkang 我们就是这么做的查询报表 SQL,一个 SQL 随便加载数据就 TB 了
|
16
daozhihun 2021-02-08 19:34:57 +08:00
这个用的还是挺多的,我最近在做的东西,我就用了好几种不同的线程池
|
17
incompatible 2021-02-08 20:43:40 +08:00 via iPhone
@stevenkang 第三个场景使用线程池有效的前提是主线程并发不能高,否则当线程池的线程被占满后,由主线程发起的异步任务依然要排队执行,起不到通过并行加速的效果
|
18
zqjnew 2021-02-08 20:52:09 +08:00 via Android 1
可以把繁杂的计算交给固定数量线程池, 繁杂的 io 交给自动增长的线程池
|
19
kingfalse 2021-02-08 20:59:19 +08:00 via Android
爬虫开发,请求解析这些,全在线程池
|
20
gaigechunfeng 2021-02-08 22:21:21 +08:00
强行在一个 app 上用过一次,还出了好几个 bug 。。。
感觉一般的小项目,不考虑多线程一样完成。小项目就是实现业务即可,谁管你怎么实现的。 |
21
cnzjl 2021-02-09 07:47:25 +08:00
好多场景呢,批量处理任务,批量下游发送
|
22
Aaronsunny 2021-02-09 09:30:53 +08:00
好多吧。
|
23
wangkai0351 2021-02-09 09:42:47 +08:00
早期(十几年前)做 Windows 应用软件开发程序员的基本功吧
|
24
haon 2021-02-09 15:33:32 +08:00
异步任务用的比较多
|
25
TeeMoCode 2021-02-09 15:45:11 +08:00
用到过,比如说从对象服务器上使用线程池下载多个文件,所有文件下载完后再进行后续处理;耗时而又无需前端感知的任务丢到线程池中异步完成
|
26
cabing 2021-02-18 11:16:48 +08:00
异步解耦必用吧。
线程池是基本的吧,都封装成包了。 |
27
SkyLine7 2021-02-19 11:03:22 +08:00
@stevenkang 学习了!
|
28
sss666 2021-02-20 17:10:10 +08:00
resttemplate,异步任务
|