要求不断地顺序打印十二生肖,采用多线程来做,这个时候就需要使用到线程同步机制了,
这里我用事件来做,我尝试用Mutex做的话,是无法控制线程的执行顺序的。
请看代码:
while(TRUE) {
WaitForSingleObject(pparam->hEvent, INFINITE);
cout << num[id] << " ";
if(id == 11)
cout << endl;
PPARAM p = pparam + 1;
if(id == 11)
p = pparam - 11;
// 设置下一个事件有效
SetEvent(p->hEvent);
}
}