1.線程池的運行狀態
2.
execute和submit方法有什麼區別?
- 1.execute是Executor制定的規範,submit是ExecutorService制定的規範
- 2.execute只有接收Runnable參數的一種實現,submit重載的方法,既有接收Runnable參數的實現,也有接收Callable參數的實現
- 3.execute() 方法用於提交不需要返回值的任務,所以無法判斷任務是否被線程池執行成功與否;
- 4.submit()方法用於提交需要返回值的任務。線程池會返回一個future類型的對象,通過這個future對象可以判斷任務是否執行成功,並且可以通過future的get()方法來獲取返回值,get()方法會阻塞當前線程直到任務完成,而使用 get(long timeout,TimeUnit unit)方法則會阻塞當前線程一段時間後立即返回,這時候有可能任務沒有執行完。