Java高并发模型

1 前言

汇总自己用到的高并发模型

2 代码

 


package MainFixedFuc;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class SingleTest {
public static void main(String[] args) {
// 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
ExecutorService executorService = Executors.newFixedThreadPool(10);
for (int k = 0; k < 10; k++) {
final int t = k;
executorService.submit(new Runnable() {
@Override
public void run() {

try {
getID(t);
} catch (Exception e) {

} finally {
}
}
}
);

}

// 平滑的关闭ExecutorService,当所有提交任务执行完毕,线程池即被关闭
executorService.shutdown();

while (true) {
// System.out.println("等待线程执行完成");
// isTerminated当调用shutdown()方法后,并且所有提交的任务完成后返回为true
if (executorService.isTerminated()) {
// System.out.println("线程执行完成");
break;
}
}

System.out.println("多线程执行完成");

}

public static int getID(int id) throws Exception {
Thread.sleep(3000);
System.out.println("任务id: " + id);
return id;
}
}
 
posted @ 2020-01-13 15:25  fly_pig  阅读(317)  评论(0编辑  收藏  举报