深入理解電腦系統(第三版)/ CSAPP 雜談,第12章:並發編程

  • 2019 年 12 月 23 日
  • 筆記
  • 基於進程的並發編程:accept 後 fork。優點:虛擬空間獨立,不容易出 bug;缺點:創建進程開銷大。需要處理 SIGCHLD 來回收僵死子進程。
  • 基於 I/O 多路復用:傳遞待讀描述符集合給 select 函數,以此響應所有描述符的 I/O 事件。select 會修改描述符集合,改為可讀子集返回,所以每次使用都要重新更新待讀描述符集合。
  • 基於 I/O 多路復用的並發事件驅動:保存所有已連接的客戶端,每次循環檢測監聽套接字,然後更新客戶端集合,並執行相應操作
  • 狀態機就是一組狀態(state),輸入事件(input event),和轉移(transition)
  • 基於執行緒的並發:accept 後創建執行緒處理。但容易引入競爭(race)。

版權所有,轉載請註明出處: https://sickworm.com/?p=1670