一、常見的線程模型:
- 傳統阻塞IO線程模型
- Reactor模式
二、各線程模型介紹:
1、傳統阻塞IO線程模型
模型特點:
(1)採用阻塞IO模型獲取輸入的數據
(2) 每個連接都需要獨立的線程完成數據讀取、處理和結果的響應。
模型缺點:
(1)每個連接都需要開啓一個線程,當併發數量很大,就會創建大量線程,佔用系統很大的資源。
(2)當連接創建後,如果當前線程沒有數據可讀,就會阻塞在read操作,造成線程資源浪費。
2、Reactor模式
2.1 什麼是Reactor模式?
基於IO複用模型,多個連接共用一個阻塞對象,應用程序只需要一個阻塞對象等待,無需阻塞等待所有連接。當某個連接有數據可以處理時,線程從阻塞狀態返回。基於線程池複用線程資源,將連接完成後的業務處理分配給線程池處理。簡單講,IO複用結合線程池,就是Reactor模式的設計思想。