ThreadPoolExecutor的簡單實踐

  1. 創建
//創建阻塞隊列
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();

  1. 使用
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的詳細介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章