SDL 開發實戰(七): SDL 多線程與鎖機制
阿新 • • 發佈:2019-03-08
tor 訪問 lock 線程管理 條件 操作 ... wait 線程創建
為什麽要用多線程?在音視頻領域主要是實現音視頻同步。實現了音視頻同步,我們的播放器就基本上合格了。這裏我們將講解一下SDL的多線程與鎖機制。
多線程的好處主要是能使程序更加充分利用硬件(主要是CPU)的性能。但是也存在相應的隱患,如果多線程管理不好,會出現協調問題。
引進的機制:線程的互斥與同步
互斥:同一個資源在一定時間內只能由一個方法訪問。
同步:一個方法完成後的內容需要同步到其他的方法,在由其他方法操作完成後的內容。
鎖與信號量
鎖用於完成互斥;信號量用於同步。
鎖的種類:讀寫鎖、自旋鎖、可重入鎖。
SDL線程創建:SDL_CreateThread
SDL線程等待:SDL_WaitThead
SDL互斥鎖:SDL_CreateMutex / SDL_DestroyMutex
SDL鎖定互斥:SDL_LockMutex / SDL_UnlockMutex
SDL 條件變量(信號量):SDL_CreateCond / SDL_DestoryCond
SDL 條件變量(信號量)等待 / 通知 :SDL_CondWait / SDL_CondSingal
(待完善....)
SDL 開發實戰(七): SDL 多線程與鎖機制