如何解决同一对象在多线程中运行的多个实例,如何防止所有线程更改全局变量?
我有一个名为myConsumer的类,它具有一个功能getDataFromBuffer()。我从类中创建了对象Consumer1,consumer2,consumer3的多个实例。每个使用者对象同时在不同的线程中运行。一切正常,直到这里。但我想补充一点。我有一个名为MyGlob的全局变量,我想将其值增加一,它的getDataFromBuffer()函数在那时被Consumer1使用。而且我不想更改其他线程的MyGlob变量。如何防止其他人改变我的价值?
我总结一下问题:
int MyGlob;
class myConsumer
{
public:
void getDataFromBuffer();
}
void myConsumer::getDataFromBuffer(){
if(this function is used by consumer1 )
myGlob++;
}
我在Windows和Eclipse CDT上使用pthread库作为线程
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。