三、多线程与上厕所
世界上最让人坐立不安,最知道心急的时候,是拿着手纸捂着肚子而厕所里有人的时候。
现在我们有两个人,一个在厕所里,一个在厕所外。
厕所外的人一直问“你好了没?”
while(厕所里的人没出来) { 说话(“你好了没,我憋不住了”) }
这个时候就会变成,里面的人拉的不舒服,外面的人也难受。
现在我们把条件放宽一点,假如外面的人不是很急,那么他还是这么问的话,估计就浪费很多时间了。
如果我们把程序变成这样。
1 DWORD WINAPI ThreadFunc(LPVOID n) 2 { 3 while("没有上完厕所") 4 { 5 printf("我是线程二,我在上厕所\n"); 6 } 7 } 8 9 int main() 10 { 11 HANDLE hThread = CreateThread(NULL,0,ThreadFunc,,0,NULL); 12 WaiteForSigleObject(hThread,INFINITE); 13 printf("我是线程一,终于到我上厕所了\n"); 14 }
这时候,线程二工作完成,就会通知线程一,我的工作完成了,你可以继续了。