1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| ExecutorService exec = Executors.newFixedThreadPool(threadNum);
List<Runnable> tasks = new ArrayList<>(); Runnable task = null; List<List> cutList = null;
for (int i = 0; i < threadNum; i++) { if (i == threadNum - 1) { if (special) { break; } cutList = jsonList.subList(threadSize * i, dataSize); } else { cutList = jsonList.subList(threadSize * i, threadSize * (i + 1)); } final List<List> listStr = cutList; task = new Runnable() { @Override public void run() { ··· 代码 ··· } }; exec.submit(task); }
exec.shutdown(); while (true) { if (exec.isTerminated()) { return resInfo; } }
|