这段代码哪儿错了?急!!!
发布网友
发布时间:2022-05-23 14:53
我来回答
共2个回答
热心网友
时间:2023-05-22 20:01
代码没错,结果也没错。
运行哪个线程看的是时间片,互斥对象只是防止在运行 EnterCriticalSection( &cs ), LeaveCriticalSection( &cs )之间语句的时候同时运行另一个线程,但是如果线程1时间片内线程1足够运行两次,那么他就会运行两次。
也就是说,桌子上有6个苹果,有两个人吃,一个人吃完一个另一个才有可能吃(这就是互斥对象)。然后单数的分钟A吃,双数的分钟B吃(这就是时间片)。当然,这两个人没有心计,只能以最快的速度吃,吃一个苹果一分半。A吃完苹果后,如果刚好还是单数的分钟,那么A可以继续吃苹果。
所以结果不会是ABABAB而是ABBAAB
解决这个问题可以定义一个静态bool变量解决
热心网友
时间:2023-05-22 20:01
如果是两线程 会不会不是按照先编码先输出 而是同时输出 造成的输出混乱