我们在写服务的时候,有时候需要利用线程池来批量作业,这个时候需要等全部作业处理完后统一返回,这种情况只能用CountDownLatch来处理了,
比如下面的代码实例
@RequestMapping(value = \"/demo4\", method = RequestMethod.GET)
public String demo4() throws Exception {
System.out.println(\"begin ===\");
// CountDownLatch latch = new CountDownLatch(20);
for (int i = 0; i < 20; i++) {
if (i % 2 == 0) {
Thread.sleep(new Random().nextInt(120));
new Thread(new A(\"22\", \"777\")).start();
} else {
Thread.sleep(new Random().nextInt(544));
new Thread(new A(\"333\", \"666\")).start();
}
}
//latch.await();
System.out.println(\"end ===\");
return \"success\";
}
@Data
@AllArgsConstructor
class A implements Runnable {
private String venderName;
private String cookie;
// private CountDownLatch latch;
@Override
public void run() {
try {
Thread.sleep(new Random().nextInt(5000));
System.out.println(\"venderName->\" + venderName);
} catch (Exception e) {
e.printStackTrace();
} finally {
//latch.countDown();
}
}
}
继续阅读与本文标签相同的文章
上一篇 :
企业数据化转型趋势,快速开发平台的优势
下一篇 :
比特大陆“政变”?二股东驱逐大股东,解除一切职务
-
将制造业作为发展数字经济的主战场!
2026-05-18栏目: 教程
-
如何成为一名优秀的初级开发者?
2026-05-18栏目: 教程
-
展望2025多媒体技术与应用趋势
2026-05-18栏目: 教程
-
“拼下限”的网络直播
2026-05-18栏目: 教程
-
阿里云第六代云服务器特性、实例类型、及可选区域相关介绍
2026-05-18栏目: 教程
