c – 静态成员函数和线程安全

c – 静态成员函数和线程安全,第1张

概述在C中,当静态成员函数中有局部变量时,是否意味着这些局部变量也是隐式静态的,还是真正的本地变量? 例: static void myClass::somefunc(int someint){int myint = someint; // is myint really a local variable or does it change due to the static qualifie 在C中,当静态成员函数中有局部变量时,是否意味着这些局部变量也是隐式静态的,还是真正的本地变量?

例:

static voID myClass::somefunc(int someint){int myint = someint;  // is myint really a local variable or does it change due to the static qualifIEr at function level?}

此外,运行此功能的线程池的不同线程myite是否需要被锁保护?假设传递给它的所有值是不同的,并且彼此没有关系.

编辑:Thanx的答案.现在,如果我在boost :: shared_ptr< T>中传递,知道这个对象不会被另一个线程同时使用? (不知道真的可以保证,还是可以吗?)

我猜一个原始的ptr传入,需要一些保护,如果它被全部使用?

解决方法 它们是本地的,除非您声明它们是静态的 – 函数的每次调用将具有自己的变量副本,您不需要保护它们. 总结

以上是内存溢出为你收集整理的c – 静态成员函数和线程安全全部内容,希望文章能够帮你解决c – 静态成员函数和线程安全所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存