sdl线程的创建:这里描述这个的主要原因是因为ffplay是这样实现的,一个线程送解码,一个线程获取解码之后的数据,因为是多线程并且有队列等的管理,所以也使用了锁和信号量
基本介绍
- 线程:
- 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_CondWait等待信号量的时候,线程会将锁释放掉,
执行结果
这个demo主要是让我了解一下几点:
1、线程是怎么创建的
2、线程之间锁是怎么使用的
3、线程之间信号量是怎么使用的,信号量和锁之间的关系