关于 ResumeThread()函数
今天在做一个理发师问题时,在晚上看到一段代码。
HANDLE barbers =CreateSemaphore(NULL, 1,1, "barbers");
HANDLE customers =CreateSemaphore(NULL,0,CHAIRS,"customers");
hThreadCustomer=CreateThread(NULL,0,customer,NULL,0,NULL);//创建消费者线程
hThreadBarder=CreateThread(NULL,0,barber,NULL,0,NULL); //创建理发师线程
DWORD WINAPI barber(LPVOID pParm1)//理发师线程
{
WaitForSingleObject(customers,INFINITE);//p(customers),等待顾客
WaitForSingleObject(Mutex,INFINITE); //等待互斥量
ReleaseSemaphore(barbers,1,NULL); //释放信号量
ResumeThread(barbers); //唤醒顾客进程
ReleaseMutex(Mutex); //v(mutex);
return 0;
}
ResumeThread()使用该函数能够激活线程的运行,使CPU分配资源让线程恢复运行。
上面的用法和这个函数的说明,好像根本不是一回事。求个明白。