執行緒池的理解

2021-08-24 18:42:59 字數 498 閱讀 1434

原來一直對執行緒池心存疑惑....

第乙個疑惑是..執行緒類在例項化的時候就已經指定了run函式了,也就是說,乙個執行緒在例項化的時候,他能做什麼就已經定下來了,要做別的事,就要新開乙個執行緒...這感覺就和執行緒池的思想違背了,怎麼樣從執行緒池裡面拿乙個執行緒出來就可以執行呢?執行完了然後再放回去呢???

第二個疑惑則是,如何實現拿來放回,以及連線數的動態控制..........

今天通過看一段**,終於得到了解答...

執行緒池其實的確是乙個執行緒的池子,不過這個池子並不是任務池.....

每個執行緒的作用就是,從任務池裡面取出乙個任務,然後執行這個任務....

在每個執行緒的run過程內部,則是乙個死迴圈,不停的從任務池中讀取任務,執行任務.

任務池可以是queue....

這樣子看起來,其實執行緒池的所謂拿來放回,可能只是拿任務....

當然我只見過小型執行緒池,可能大型執行緒池真的可以拿來放回......

去找個大型執行緒池的源**來看看......

執行緒池的理解

1.為什麼要使用多執行緒?充分利用cpu資源,併發去做多個事情 2.單核cpu機器適不適合用多執行緒?適合,如果是單執行緒,執行緒中需要等待io,此時cpu就空閒出來了 3.執行緒什麼時候讓出cpu?阻塞時,wait,await,等待io,sleep,yield,結束了 4.執行緒是什麼?程序的最小...

執行緒池的理解

學校組織體檢,有一項內容是抽血化驗.抽血是在乙個房間 執行緒池 裡進行,假設 房間裡面有6個核心視窗進行抽血 corepoolsize 如果來抽血化驗的人太多,核心視窗也可以擴容,最大可以擴充套件到10個視窗.maximumpoolsize 其中有6個核心視窗,和4個非核心視窗.非核心視窗在抽血化驗...

理解執行緒池

建立執行緒池的一種方式 threadpoolexecutor threadpoolexecutor new threadpoolexecutor corepoolsize,maximumpoolsize,keepalivetime,unit,workqueue,threadfactory,handl...