線程回顧
初始化線程的4種方式:
- 繼承Thread
- 實現Runnable接口
- 實現Callable接口 + FutureTask(可以拿到返回結果,可以處理異常)
- 線程池
方式1和方式2:主進程無法獲取線程的運算結果。不適合當前場景
方式3:主進程可以獲取線程的運算結果,並設置給itemVO,但是不利於控制服務器中的線程資源。可以導致服務器資源耗盡。
方式4:通過如下兩種方式初始化線程池:
Executors.newFiexedThreadPool(3);
//或者
new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit unit, workQueue, threadFactory, handler);
通過線程池性能穩定,也可以獲取執行結果,並捕獲異常。但是,在業務複雜情況下,一個異步調用可能會依賴於另一個異步調用的執行結果。