永发信息网

如何在VC多线程下使用私有的全局变量

答案:4  悬赏:0  手机版
解决时间 2021-03-01 20:22
  • 提问者网友:萌卜娃娃
  • 2021-03-01 08:40
全局变量可以多个函数间共享数据,全局变量可以所有线程共有。但有时,需要提供线程私有的全局变量,仅在某个线程中有效。 线程私有数据 TSD thread-specific Data 。
这个是在Linux 开发下可以使用的方法。

但在windows,VC中如何实现这个功能呢。
最佳答案
  • 五星知识达人网友:行路难
  • 2021-03-01 09:46
貌似没有很好的办法。只有为函数增加一个参数(指针或引用,一个变量的话可以引用,多个就只能用指针了),在线程中定义变量并将变量传入。
全部回答
  • 1楼网友:躲不过心动
  • 2021-03-01 12:56
waitforsingleobject(pframeinqueue->m_mutex,infinite); releasemutex(pframeinqueue->m_mutex); 需要成对的出现.你在if判断里边释放一次 但是如果if条件不成立,你就没有调用释放.这样的结果就是互斥量mutex被锁定, 其他线程无法调用. 在2个if判断外加上释放mutex的语句再试一试
  • 2楼网友:行雁书
  • 2021-03-01 11:57
线程函数的里面定义临时变量,然后while()体里面可以一直使用吧?而外面谁也没法使用其啊?这样不可以吗?
  • 3楼网友:野慌
  • 2021-03-01 10:25
#include int myGlobal = 3; static void ChangeMyGlobal(void) { myGlobal = 5; } int main(void) { printf("%d\n", myGlobal); ChangeMyGlobal(); printf("%d\n", myGlobal); return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯