2 xhyzkk xhyzkk 于 2017.08.31 11:22 提问

java 多线程
                有1000条数据需要处理,想用四条线程同时执行,同时每条数据必须处理且只需要处理一次,

大概要怎么解决,求大神给解决思路

8个回答

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.08.31 11:24

加个标志,,,没处理等于true,,处理了,等于falst

不知道题主数据如何存储的??根据存储方式可能有更巧妙的解法

P923284735
P923284735   2017.08.31 11:25
mwb102919
mwb102919   2017.08.31 12:11

可以用BlockingDeque put take 轻松解决

usecf
usecf   2017.08.31 12:38

用线程同步 信号量

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2017.08.31 12:48
可以把你的1000条数据存入队列或者列表中,开启四个线程动态从队列或者集合中获取一条记录去处理,直到队列数据为空。
其实只要定义一个Runnable类接收一个列表参数。
需要demo的话,可以私信,我下班有空可以给你写demo。
xhyzkk
xhyzkk list中存了1000条数据,要通过这1000条数据调接口,然后将返回值插库,由于那个接口特别慢,所以我想用多线程优化下
3 个月之前 回复
u013133454
u013133454   2017.08.31 12:59

把数据放到4个容器里,每个线程只处理自己容器里面的

qq_23292875
qq_23292875   2017.08.31 13:37

把1000调数据分成四页交给每一个线程去循环处理

54powerman
54powerman   2017.08.31 18:23

定义定长的executor,直接循环往里丢

Csdn user default icon
上传中...
上传图片
插入图片