三、多线程与上厕所

本文通过一个幽默的例子,描述了两个线程之间的交互过程。一个线程正在执行任务(上厕所),另一个线程等待其完成。使用了线程创建、等待等基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

世界上最让人坐立不安,最知道心急的时候,是拿着手纸捂着肚子而厕所里有人的时候。

 

现在我们有两个人,一个在厕所里,一个在厕所外。

厕所外的人一直问“你好了没?”

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 }

这时候,线程二工作完成,就会通知线程一,我的工作完成了,你可以继续了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值