减少循环中SDL_mutex的CPU使用率

时间:2019-11-23 23:36:35

标签: c multithreading sdl

我编写了以下代码,以继续检查signal(受SDL_mutex保护),直到其值不同于0。发生这种情况时,它将保存到s中。

char s = 0;
while(!s) {
    SDL_LockMutex(mutex);
    s = signal
    if(s) signal = 0;
    SDL_UnlockMutex(mutex);
}

但是运行此代码将导致CPU使用率最高。可以通过在循环内添加SDL_Delay来解决此问题,但我需要不断检查该值,以至于对我来说不起作用。

有解决方案吗?

0 个答案:

没有答案