SDL2文章列表
SDL2入门
SDL2事件处理
SDL2纹理渲染
SDL2音频播放
FFmpeg+SDL2实现视频流播放
FFmpeg+SDL2实现音频流播放
FFmpeg音视频同步
今天一起了解下在SDL2中多线程的使用。
下面是SDL2中多线程相关的API。可以发现实际上SDL2中的多线程操作也只是提供了统一的接口,没有做其他操作。
创建线程
1 2 3 4 5 6 7 8 9 10
| SDL_Thread* SDL_CreateThread(SDL_ThreadFunction fn, const char* name, void* data)
typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
|
等待线程
1 2 3
| void SDL_WaitThread(SDL_Thread* thread, int* status)
|
创建互斥量
1
| SDL_mutex* SDL_CreateMutex(void)
|
销毁互斥量
1
| void SDL_DestroyMutex(SDL_mutex* mutex)
|
加锁
1
| int SDL_LockMutex(SDL_mutex* mutex)
|
解锁
1
| int SDL_UnlockMutex(SDL_mutex* mutex)
|
信号量创建/销毁
1 2
| SDL_cond * SDL_CreateCond(void); void SDL_DestroyCond(SDL_cond * cond);
|
信号量等待 / 通知
1 2
| int SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); int SDL_CondSignal(SDL_cond * cond);
|
SDL2中的多线程其实并没有什么可以讲的,和我们用其他语言做多线程处理没有区别,在这里熟悉下API。