关于 ResumeThread()函数

tarena_1031 2013-12-04 11:45:18
今天在做一个理发师问题时,在晚上看到一段代码。
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分配资源让线程恢复运行。
上面的用法和这个函数的说明,好像根本不是一回事。求个明白。
...全文
767 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tarena_1031 2013-12-04
  • 打赏
  • 举报
回复
引用 1 楼 davidyu720 的回复:
代码有问题啊 ResumeThread(HANDLE hThread)这是函数的原型。 要唤醒顾客线程,应该用ResumeThread(hThreadBarder)
我也这么试过,但是换过之后程序跑不起,各种混乱。。。
davidyu720 2013-12-04
  • 打赏
  • 举报
回复
代码有问题啊 ResumeThread(HANDLE hThread)这是函数的原型。 要唤醒顾客线程,应该用ResumeThread(hThreadBarder)

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧