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

本文探讨了在多线程环境下,标准输出缓存未正确处理导致的并发输出问题,并提供了通过加锁来解决该问题的方法。

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

以下是优快云朋友解释

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

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

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

 

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

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值