ds 多執行緒伺服器的體系結構

2021-10-06 22:21:36 字數 1387 閱讀 7070

worker pool

thread-per-request

thread-per-connection

thread-per-object

執行緒池是一組預

先例項化的空閒執行緒

,它們隨時可以進行工作

。當要執行大量的短任務而不是少量的長任務時

,優先於為每個任務例項化新執行緒

。這樣可以

避免產生大量執行緒的開銷。

實施會因環境而異,但簡單來說,您需要以下內容:

建立執行緒池時,它將例項化一定數量的執行緒以使其可用.

將執行緒池處理乙個任務,它將從容器中獲取乙個執行緒(如果容器為空,則等待乙個執行緒可用),將處理這個任務。

這將導致空閒執行緒恢復執行,並呼叫給定的execute()方法。

執行完成後,執行緒將自己移回池中以放入容器中以供重用,使自己進入睡眠狀態,直到迴圈重複。

執行緒池可以幫助您避免建立或破壞超出實際需要的執行緒。

您有乙個設施,那裡有12個人在工作。該設施共有3個部分。廚房,洗手間和安全性。如果您不使用執行緒池技術,那麼它就是這樣工作的:所有12個人都將站在會議室中,如果新客戶來訪並要求任務,那麼您將把人們分成幾組並派他們去做,然後回到會議室。但是,在他們上班之前,有乙個準備階段。他們需要穿著正確的**,配備某些裝置,然後步行到該區域,完成工作並返回。因此,每次他們完成工作(執行緒結束)後,就需要回到會議室,脫下**,拿出裝置並等待下乙份工作。這些指的是建立執行緒上下文,它是作業系統的記憶體分配和跟蹤資訊。

如果使用執行緒池,那麼在清晨,您將為廚房分配6個人,為衛生間分配2個人,為安全分配4個人。因此,他們每天只會做一次準備。即使廚房裡沒有顧客,那四個人也會閒著閒逛,等待即將來臨的工作。在廚房關閉(應用結束)之前,他們不需要回到會議室。這4個人位於kitchen應用程式池中,可以快速提供服務。但是,您不能保證他們會整天工作,因為廚房可能會不時變得閒置。同樣的邏輯也適用於洗手間和安全性。

在第一種情況下,您不會為任何任務浪費任何執行緒,但是為每個任務準備每個執行緒將花費大量時間。在第二篇文章中,您預先準備了執行緒,因此您不能保證將所有執行緒都用於所有任務,但是os在很大程度上對其進行了優化,因此您可以放心地依賴它。

參考:io執行緒會為每個請求建立乙個新的工作執行緒,工作執行緒在處理請求後會自行銷毀。

伺服器將執行緒與每個連線關聯,並在客戶端關閉連線時銷毀。客戶端可能通過連線發出許多請求。

將執行緒與每個物件相關聯。 io執行緒接收請求並將其排隊以供工作人員使用,但這一次存在每個物件的佇列。

客戶 伺服器體系結構

有乙個總是開啟的主機稱為伺服器,它服務於來自許多其他稱為客戶的主機的請求。客戶相互之間不直接通訊。伺服器具有固定的 周知的位址 ip位址 客戶總是通過向該伺服器的ip位址傳送分組來與其聯絡。具有客戶 伺服器體系結構的非常著名的應用程式包括web ftp telnet和電子郵件。在乙個客戶 伺服器應用...

tomcat伺服器體系結構

2020雲棲大會 阿里雲海量offer來啦!投簡歷 贏阿里雲限量禮品及阿里雲aca認證免費考試資格!tomcat伺服器體系結構 it那個小筆記 體系結構 server service connector engine host context 體系結構 server.xml是tomcat中最重要的配...

ORQCLE伺服器體系結構概述

orqcle伺服器體系結構概述 資料庫系統是乙個儲存和管理資料記錄的系統,通常由資料庫 資料庫管理系統及其開發工具 應用系統和使用者組成。oracle伺服器是通常意義上的資料庫和資料庫管理系統的統一體,是乙個資訊儲存和管理的整合環境,它的是主要的功能是為使用者儲存和檢索資料資訊,保證資料庫的安全,防...