@Override
public void doSyncPwdYwzngk(SysUserEntity entity, String newPwd) {
// Java获取CPU核数的方法:
int cpuNum = Runtime.getRuntime().availableProcessors() + 1;
ExecutorService executorService = new ThreadPoolExecutor(3, //核心线程池大小
cpuNum, //最大并发数
10, //超时时间
TimeUnit.SECONDS, //时间单位
new LinkedBlockingQueue<>(cpuNum),//线程等候队列
Executors.defaultThreadFactory(), //线程创建工厂
new ThreadPoolExecutor.DiscardOldestPolicy());//拒绝策略
CountDownLatch countDownLatch = new CountDownLatch(1);
executorService.execute(() -> {
try {
//业务逻辑代码
} catch (Exception e) {
// 处理异常
e.printStackTrace();
} finally {
countDownLatch.countDown();
}
});
// 等待所有线程执行完成
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
executorService.shutdown();
}
}
【002】-线程池示例-Java获取CPU核数
最新推荐文章于 2024-05-12 02:18:41 发布