1public
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...