关于信号量的一个基础问题
假如我创建了一个信号量并初始化为0
HANDLE hSem = ::CreateSemaphore(NULL, 0, 0xFFFFFFFF, NULL);
假如现在有5个后台线程同时在等待这个信号量
WaitForSingleObject(hSem, INFINITE);
假如现在有个线程将信号量置1
ReleaseSemaphore(hSem);
那么接下来这5个的线程将如何执行?
假如有10个cpu 这5个线程都在执行中 那么 这5个线程会同时从WaitForSingleObject返回吗?
假如我只有一个cpu 那是不是只有一个后台线程会从WaitForSingleObject中返回了?
那如果我希望在在将信号量置1的时候 只有一个后台线程会从WaitForSingleObject中返回 要如何做?
刚开始接触多线程, 问的问题比较白痴,还请见谅。