高併發執行緒池(一 執行緒池相關介面)

2021-10-07 09:21:54 字數 1691 閱讀 6092

如果我們要新建立乙個執行緒來執行任務,那麼一般我們的**會是這樣:

new thread

( new runnable )

.start()

;

一般是實現runnable介面或者繼承thread。

從jdk從1.5開始為我們提供了乙個callable介面

* @see executor

* @since 1.5

* @author doug lea

* @param the result type of method */

@functionalinte***ce

public inte***ce callable

該介面只又乙個方法call(),特別要注意的是該方法是有返回值的。

總體來講,callable和runnable一樣都是供我們來建立執行緒執行任務的,不同之處在於callable有返回值,而runnable沒有返回值。也就是說callable和runnable都是乙個任務,用來被執行。(callable專為執行緒池設計 ps:forkjoinpool)

* @since 1.5

* @author doug lea */

public inte***ce executor implementation.

** @param command the runnable task

* @throws rejectedexecutionexception if this task cannot be

* accepted for execution

* @throws nullpointerexception if command is null

*/void

execute

(runnable command)

;}

executor中文意思執行器,它只有乙個execute方法用來執行runnable任務。

所以executor就是用來專門執行任務的執行器。jdk為我們提供了乙個executorservice

public inte***ce executorservice extends executor
executorservice繼承了executor介面,並且進行了增強。提供了一系列執行緒執行生命週期的方法和submit方法。

submit

 future

submit

(callable task)

;

該方法可以執行乙個runnable任務,並且有乙個返回值。返回型別為future。

future 未來。表示乙個runnable在執行結束後返回的值。future就是用來接收callable介面執行結束後返回的值的。

public abstract class abstractexecutorservice implements executorservice
jdk為我們提供了乙個executorservice實現類,不過我們一般使用threadpoolexecutor來建立我們自己的執行緒池。

public class threadpoolexecutor extends abstractexecutorservice

執行緒池系列 一 執行緒池簡介

執行緒池主要解決了倆個問題 一是避免了頻繁建立銷毀執行緒所帶來的開銷,達到了執行緒復用的目的 二是執行緒池提供了一種資源限制和管理的手段,使用者可以通過一些引數來定製化執行緒 public class threadpoolexecutor extends abstractexecutorservic...

Linux 高併發執行緒池

1 多程序方案 隨著客戶端的增加,連線成功後,為每個客戶端分配乙個程序,子程序繼承與客戶端互動的socket 父程序完成連線,子程序負責業務處理 父程序下發任務 2 多程序伺服器模型,每個普通執行緒自身accept建立連線,主控執行緒 執行緒建立,任務指定,執行緒 多執行緒同時accpet阻塞等待連...

併發 執行緒池

學習 1.先大綱,然後思路優先 適當的提出問題 2.合理推測 完成上述需要知識,為了熟悉執行緒池,提出一些問題 1.執行緒什麼時候建立?2.執行緒池主要做什麼?3.無任務執行處於什麼狀態?4.提交乙個任務,執行邏輯?5.執行緒池怎樣被銷毀?回答問題 1.執行緒在執行 excute方法 中,做系列判斷...