今天运行个多线程测试时候,奇怪现象

来源:互联网 发布:淘宝助理导入csv文件 编辑:程序博客网 时间:2024/05/23 13:29

以下是CSDN朋友解释

=============

这应该是标准输出缓存没有正确处理的缘故吧。要知道标准输出是共享资源,你使用他时必须进行并发控制。
假定第一个线程输出1 new thread....后,cout尝试把其缓存清空,但是在清空前的一霎那,如果恰好
线程2获得控制权,你说的现象就必然出现。也就是说,是否出现你说的现象,要看线程上下文何时切换,而这就是为什么你试多次才出现一次的原因(因为上下文切换有点随机性)

如果你进行并发控制,给cout加个锁,就绝对不会出现了。

 

================================

 

我想既然是这样的话,问题只要是count原因吧,如果执行其它原因就不会出现重复执行情况