1. 程式人生 > >SDL 開發實戰(七): SDL 多線程與鎖機制

SDL 開發實戰(七): SDL 多線程與鎖機制

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 多線程與鎖機制