執行緒池 超時時間 等待執行緒池中的執行緒完成所有任務

2021-10-02 02:25:20 字數 1169 閱讀 6961

建立乙個固定大小的執行緒池。

shutdown():用於關閉啟動執行緒,如果不呼叫該語句,jvm不會關閉。

awaittermination():用於等待子執行緒結束,再繼續執行下面的**。該例中我設定一直等著子執行緒結束。

isterminated當呼叫shutdown()方法後,並且所有提交的任務完成後返回為true

interrupt() 與 cancel()的區別

兩者實際上都是中斷執行緒,但是後者更安全、有條理和高效,其原因跟推薦使用executor而不直接使用thread類是一致的。所以結合上面講到的原則,我們應盡量採用cancel()方法,呼叫執行緒管理器executorservice介面的submit(runnable task) 方法會返回乙個future>物件,然後呼叫future.cancel()的方法來取消任務,並返回乙個boolean值。

1.測試執行緒類 

package com.fullrich.pay.batch.task;

class task implements runnable

public void run() catch (interruptedexception e) }}

2.測試isterminated()的作用

public static void main(string args) catch(exception e)

}fixedthreadpool.shutdown();

//2.等待執行緒全部執行完畢以後會輸出主線程執行完畢

while(true)}}

2.測試awaittermination()的作用

public static void main(string args) catch(exception e)

}fixedthreadpool.shutdown();

//所有執行緒在3s內執行完畢後會輸出主線程執行完畢否則中斷超時任務

try else }}

} catch (interruptedexception e)

}

java執行緒池主線程等待子執行緒執行完成

今天討論乙個入門級的話題,不然沒東西更新對不起空間和網域名稱 工作總往往會遇到非同步去執行某段邏輯,然後先處理其他事情,處理完後再把那段邏輯的處理結果進行彙總的產景,這時候就需要使用執行緒了.乙個執行緒啟動之後,是非同步的去執行需要執行的內容的,不會影響主線程的流程,往往需要讓主線程指定後,等待子執...

java執行緒池和關閉執行緒池中的執行緒

如果執行緒經常喜歡去new的話是不對的,你需要乙個池子管理。newcachedthreadpool 這個乙個帶快取的執行緒池,是個可以無限大的執行緒池,新建的執行緒放倒這個池子裡,當執行緒停掉了的時候,下個個執行緒進來,可以復用這個執行緒。newfixedthreadpool 是個有長度的執行緒池,...

Python等待所有執行緒任務完成

import threading import time import random def takesleep id,name print name id 執行緒開始執行.time.sleep random.randint 0,3 print name id 執行緒任務結束 print 主程式開始...