【发布时间】:2019-03-29 18:39:31
【问题描述】:
假设我有一个包含 10,000 个对象的列表
ArrayList<String> al=new ArrayList<String>();
al.add("1");
al.add("2");
al.add("..");
al.add("10000");
我想使用一个有 20 个线程的线程池来处理这 10,000 个对象。目标是确保我的程序只读取每个对象一次。
由于程序不会标记列表对象已被读取,我能保证每个对象只被处理一次吗?
【问题讨论】:
-
将所有 10.000 个对象放入 ConcurrentLinkedQueue 中,然后在每个处理线程中,使用 ConcurrentLinkedQueue.poll 检索对象。
标签: java threadpool threadpoolexecutor