清除标志位的问题,有人觉得加判断上多此一举!

写业务代码的时候遇到一个问题,把标志位这样清零有什么问题吗?

boolean flag;
... ...
//somewhere the flag=1;
... ...
void function(void)
{
    ... ...
    if(flag == 1)
    {
        //do something
        flag = 0
    }
}


没什么问题,这是封装一个函数用于做标志位处理,需要用的地方可以重复调用。

如果你用的是多线程,在线程调度的过程中这一变量可能被错误读取与修改,这时一般是用互斥锁去做来避免线程间冲突

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^