SDL_CreateThread //创建线程
SDL_WaitThread //等待线程
SDL_CreateMutex/SDL_DestroyMutex
SDL_LockMutex/SDL_UnlockMutex
值得注意的是sdl只含有互斥锁这一种,并没有多种锁。
SDL条件变量:
SDL_CreateCond/SDL_DestroyCond
SDL_CondWait/SDL_CondSignal //等待一个信号量/发送一个信号量
注意在SDL_CondSignal源码中,如果它在一个锁锁住的区域,那么当他发送信号前,它会先解锁,然后发送信号,然后再加锁。
注意在SDL_CondWait源码中,当此函数在锁的区域中,那么它会先解锁,然后等待接收其他线程发送的信号量。执行完后再加锁。
注意SDL_CondWait/SDL_CondSignal这两个函数一定要在锁和解锁这段区域中调用,要不然会出现死锁的情况,因为这两个函数本身也有对锁的操作。
推荐一套音视频免费课程,笔者听完了,nice!免费报名可听!
免费音视频课程连接,点击此处