課程簡介
-
插座
創建數據報套接字
接收和發送數據
創建和接受 TCP 連接
關閉插座
處理錯誤
以簡單的方式處理多個用戶端
Prefork 模型,如 Apache 中所示
為每個用戶端分叉一個新進程
完成流程后的清理
線程
Inetd, systemd 單元
等待數據
阻塞套接字
非阻塞套接字和選擇
選擇作為等待「這些套接字中的任何一個」的一種方式
組織讀取和寫入
處理短讀和短寫
讀取分隔符
流水線請求
應用程式級緩衝區
事件驅動架構
使用 select 在一個線程中多路複用所有客戶端連接
狀態機
回調地獄
事件庫
“綠色”線程
10000 個連接的問題
prefork 模型和基於選擇的循環的問題
輪詢作為選擇的替代方法
實時信號以及為什麼不應該使用它們
Epoll (linux) 和 kqueue (BSD)
為什麼以及何時 epoll 和 kqueue 比 poll/select 更快
超時和計時器
SIGALARM公司
超時作為選擇參數
超時相等的簡單情況
優先順序佇列作為抽象數據鏈
二進位堆作為優先順序佇列實現
定時器輪
timerfd(定時rfd)
與作業系統集成
傳統守護進程
Systemd 套接字啟動
伐木
處理信號
性能和可伸縮性優化
選擇正確的架構
設置套接字選項
最低要求
- C語言
- Linux 使用者技能
客戶評論 (5)
The breadth of the topis covered was quite a bit and the trainer tried to do justice to that.
Lakshmipriya Sivakumar - Deque Systems Inc
Course - Spring Boot, React, and Redux
I like the professionality of the trainer, he really knows what he is talking about and able to explain almost even the simple subjects on the topic which is great.
Marlon - National Confederation of Cooperatives
Course - React with Next.js
trainer very knowledgeable clear classes explains the importance of learn the topic gives enough background on topic
Li Fang Bren Ong - DBS Bank Limited
Course - Ant Design
學到了很多關於這個話題的知識
Zsolt Langviser - Accenture Industrial SS
Course - NestJS: Beginner to Advanced
機器翻譯
The labs were interesting and probably the most useful learning tool to me. Anything I missed or forgot about was relearned or reinforced in the labs.