一、 課程簡介:
本課程從Linux內核的進程模型和線程模型出發,講解多線程開發的原理,并結合實際應用需要講解如何結合實際問題,選擇合理的設計和實現機制,實現性能和可靠性。
二、培訓目標:
理解進程與線程內核原理與開發基礎
Linux進程調度原理
Linux線程的內核實現原理
Linux多進程應用開發
進程間通信
Linux多線程應用開發
掌握多線程開發的高級技術和調試
Linux多線程與信號
可重入函數、線程安全與異步信號安全
C/C++庫函數和STL的線程安全
線程的堆棧與棧溢出
多線程編程模型
多線程與I/O
調試手段與技巧
三、培訓內容:
進程與線程內核原理與開發基礎
Linux進程調度原理 Linux進程生命周期
Linux進程調度時機
Linux 進程調度算法
Linux進程調度機制
Linux內核線程
Linux線程的內核實現原理
Linux線程模型:LinuxThreads和NPTL
內核如何用進程模擬線程
實時線程創建與搶占
硬實時Linux
深化:從操作系統本質看進程與線程
Linux多進程應用開發 進程的屬性和狀態
進程的創建、執行、消亡
進程相關系統調用
守護進程
進程間通信進程間通信基本概念
管道的實現及應用
信號的實現與應用
消息隊列的實現與應用
共享內存的實現與應用
信號量
Linux多線程應用開發 Linux線程模型
線程創建、等待、退出
線程屬性
實時線程
線程間通信
pthread_once
線程級全局變量:Thread-Specific Data
應用與開發實踐
多線程開發的高級技術和調試
Linux多線程與信號 Linux內核信號處理流程
Linux信號的分類
進程的信號處理
多線程情況下的信號處理
信號處理函數的要求
errno與信號
應用與開發實踐
可重入函數、線程安全與異步信號安全 可重入函數的概念
可重入函數與線程安全函數
可重入與異步信號安全
使函數可重入的經驗
異步信號安全的庫函數
信號處理器與線程通信
應用與開發實踐
C/C++庫函數和STL的線程安全 POSIX標準的要求
線程安全的庫函數
線程不安全的庫函數
STL容器的線程安全
應用與開發實踐
線程的堆棧與棧溢出
Linux線程堆棧的分配原理
查看和設置線程的棧空間
線程棧溢出
棧溢出保護區
應用與開發實踐
多線程編程模型 典型的單線程編程模型
多線程編程模型
流水線模型
工作組模型
客戶端/服務器模型
線程池
多線程分解的思路
并行編程的一些研究課題
應用與開發實踐
多線程與I/O
阻塞、非阻塞、異步I/O與多線程
select還是多線程
應用與開發實踐
調試手段與技巧
gdb調試多線程的技巧
系統級調試
線程級調試
core dump與gcore
內存泄露
死鎖的判斷和調試
常見多線程編程錯誤分析
應用與開發實踐