gpt4 book ai didi

c++ - 许多类变量的 pthread

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:34 26 4
gpt4 key购买 nike

我有一个有很多私有(private)变量的类。每个都有 getter 和 setter 方法。我有很多线程可以访问 setter 方法并更改变量的值。无需在每个 setter 方法中编写 mutex_lock 和 mutex_unlock,我如何确保只有一个线程正在为给定变量设置值。 (问题太幼稚请见谅)

class MyClass {
private:
int var0,var1...upto var99
public:
int getVar0() { return var0 }
void setVar0(int x) { var0 = x }
.
.
.
}

MyClass mClass;

void *foo0() {
processMyClassObj0(); //does some process and sets some of 'var' variables of mClass
}
void *foo1() {
processMyClassObj1(); //does some process and sets some of 'var' variables of mClass
}
.
.
.

int main() {
pthread_t p[100];
pthread_create(&p[0],NULL,foo0,NULL);
pthread_create(&p[1],NULL,foo1,NULL);
pthread_create(&p[2],NULL,foo2,NULL);
.
.
.
pthread_create(&p[99],NULL,foo99,NULL);
pthread_exit(NULL);
}

最佳答案

您可以将“threadname”提供给您的 setter 并与您要修改的线程进行比较以更改您的值。

pthread_setname
pthread_getname

http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html

关于c++ - 许多类变量的 pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25244813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com