ExecutorService執行緒池管理

2022-07-28 06:18:18 字數 1832 閱讀 9756

1

public

class

inter

13});

14 es.execute(new

runnable()

21});22}

2324

/**25

* 根據任務量啟動執行緒數量

26*/

27public

void

allthread() catch

(interruptedexception e) 45}

46}47});48}

49}5051

/**52

* 確定執行緒數量

53*/

54public

void

fixedthread() catch

(interruptedexception e)

72if (2 ==t) 75}

76}77});78}

79}8081

/**82

* 帶返回值的callback

83*

84*

@return

85*

@throws

interruptedexception

86*

@throws

executionexception

87*/

88public string call() throws

interruptedexception, executionexception

95 system.out.println("ca");

96system.out.println(future.size());

97for (futurefu : future)

100return

null

;101

102}

103104

//用於獲取返回值的

105class mycall implements callable

112113

@override

114public string call() throws

exception

121122

}123 }

1 下面給出了乙個網路服務的簡單結構,這裡執行緒池中的執行緒作為傳入的請求。它使用了預先配置的 executors.newfixedthreadpool(int

) 工廠方法:

2class networkservice implements

runnable

1112

public

void run()

17 } catch

(ioexception ex) 20}

21}2223

class handler implements

runnable

26public

void

run()

29 }

1

下列方法分兩個階段關閉 executorservice。第一階段呼叫 shutdown 拒絕傳入任務,然後呼叫 shutdownnow(如有必要)取消所有遺留的任務:

2void

shutdownandawaittermination(executorservice pool)

12 } catch

(interruptedexception ie)

18 }

其中實現runnable和callable不同的是,前者沒有返回值,後者有。

執行緒池ExecutorService

執行緒池 任務提交到執行緒池,而不是直接交給某執行緒,執行緒池拿到任務後,它在內部找空閒的執行緒進行執行 封裝 任務是提交給執行緒池,乙個執行緒只能執行乙個任務,但可以同時向乙個執行緒池提交多個任務。建立固定大小的執行緒池 建立快取執行緒池 如何實現執行緒死掉後重新啟動?答案 建立單一執行緒池exe...

執行緒十四 ExecutorService

executorservice不僅能呼叫runnable的任務,它還提供了呼叫callable任務的方法。callable任務中的call方法能夠返回任務執行的結果,同時還可以丟擲受檢的異常,call方法宣告了乙個throws exception子句。為了描述executorservice的應用,我...

ExecutorService執行緒池

executorservice 建立多執行緒的步驟 1。定義執行緒類 class handler implements runnable 2。建立executorservice執行緒池 3。呼叫執行緒池操作 幾種不同的executorservice執行緒池物件 1.newcachedthreadpo...