- 創建
BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>();
ThreadPoolExecutor executorService = new ThreadPoolExecutor(8, 8, 5, TimeUnit.MINUTES, queue, (runnbale) -> {
Thread t = new Thread(runnbale);
t.setName("自定義線程");
t.setDaemon(true);
return t;
});
executorService.prestartAllCoreThreads();
- 使用
executorService.execute(() -> {
try {
log.info("OrderDataBizServiceImpl.procurementOrderHandler 開始");
procurementOrderHandler(applyData);
log.info("OrderDataBizServiceImpl.procurementOrderHandler 完成");
} catch (Exception e) {
log.error("OrderDataBizServiceImpl.procurementOrderHandler 異常", e);
} finally {
countDownLatch.countDown();
}
});
關於ThreadPoolExecutor的詳細介紹