JSONArray circuJs = JSON.parseArray(getCircu); JSONArray jsonArray = new JSONArray(); for (int i = 0; i < circuJs.size(); i++) { jsonArray.add(RedmineApi.getIssuesStatu(circuJs.getString(i))); }讲上面的代码换成线程执行
时间: 2024-03-26 14:41:00 浏览: 129
java JSONArray 遍历方式(2种)
可以将循环里的代码放到一个线程中执行,然后使用线程池或者 Executor 框架来控制线程的数量。可以参考下面的代码示例:
```
JSONArray circuJs = JSON.parseArray(getCircu);
JSONArray jsonArray = new JSONArray();
ExecutorService executor = Executors.newFixedThreadPool(5); // 创建线程池
for (int i = 0; i < circuJs.size(); i++) {
final int index = i;
Future<JSONObject> future = executor.submit(new Callable<JSONObject>() {
@Override
public JSONObject call() throws Exception {
return RedmineApi.getIssuesStatu(circuJs.getString(index));
}
});
try {
JSONObject jsonObject = future.get(); // 获取线程执行结果
jsonArray.add(jsonObject);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
executor.shutdown(); // 关闭线程池
```
上述代码中,创建了一个大小为 5 的线程池,循环中的代码被放到了 Callable 接口的实现中,并通过 executor.submit() 方法提交给线程池执行。通过 future.get() 方法获取线程执行结果,并将结果添加到 jsonArray 中。最后,通过 executor.shutdown() 方法关闭线程池。
阅读全文