莫名的线程控制变量bflag 被改变了,

在线程内的某个对象的函数执行后,可函数内并没有改变布尔变量的代码
在线等,bflag 全局变量

5个回答

总结下,这个布尔变量我在一个TimeOut()里面有重新赋值, 没加锁(3楼),在现场函数里sleep()函数执行完时可能给这个函数发消息,会改变值,因为这个函数在其他文件里,查看的时候不够仔细,(如二楼),谢谢伸出援手的

检查代码,肯定有地方改变了该值,否则不会有变化,仔细看看。

han_gaara
han_gaara 嗯,怎么给悬赏的?界面上怎么看不到
接近 5 年之前 回复

没有使用线程同步机制。如信号量、锁等机制

han_gaara
han_gaara
接近 5 年之前 回复

你这个问题的描述太简单了,能不能贴点代码来看看?

han_gaara
han_gaara 怎么分悬赏?
接近 5 年之前 回复
han_gaara
han_gaara 代码不知道该怎么贴, 跟你细细描述下,bfalg是全局变量,是两个线程函数里的循环结束条件。 不知道什么线程函数里会改变这个变量,实际上函数里根本没把这变量置false的操作。 而且调试的时候,改变bflag的位置还不唯一
接近 5 年之前 回复

代码不知道该怎么贴, 跟你细细描述下,bfalg是全局变量,是两个线程函数里的循环结束条件。 不知道什么线程函数里会改变这个变量,实际上函数里根本没把这变量置false的操作。 而且调试的时候,改变bflag的位置还不唯一

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问