问题描述
- 莫名的线程控制变量bflag 被改变了,
-
在线程内的某个对象的函数执行后,可函数内并没有改变布尔变量的代码
在线等,bflag 全局变量
解决方案
总结下,这个布尔变量我在一个TimeOut()里面有重新赋值, 没加锁(3楼),在现场函数里sleep()函数执行完时可能给这个函数发消息,会改变值,因为这个函数在其他文件里,查看的时候不够仔细,(如二楼),谢谢伸出援手的
解决方案二:
检查代码,肯定有地方改变了该值,否则不会有变化,仔细看看。
解决方案三:
没有使用线程同步机制。如信号量、锁等机制
解决方案四:
你这个问题的描述太简单了,能不能贴点代码来看看?
解决方案五:
代码不知道该怎么贴, 跟你细细描述下,bfalg是全局变量,是两个线程函数里的循环结束条件。 不知道什么线程函数里会改变这个变量,实际上函数里根本没把这变量置false的操作。 而且调试的时候,改变bflag的位置还不唯一
时间: 2025-01-19 10:20:20