daB*_*bby 2 c++ multithreading mutex thread-safety
我有一个带有静态函数的C++类:
class Foo
{
public:
static void bar(int &a)
{
a++;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
作为参数传递的变量仅在调用范围内使用.所以它不被另一个线程访问.
mutex当我从一个单独的线程中调用此函数时,我是否必须使用?
谢谢.
函数是否static存在与是否需要对其调用进行同步无关。
确定因素是函数是否可重入以及如何处理数据。在这种情况下,该函数是可重入的(因为它没有自己的非本地状态,或者实际上根本没有任何状态),并且数据由调用范围拥有/管理,因此您必须确定在调用范围内,该整数是否需要保护。
但是,无论bar是静态成员,非静态成员,自由函数,宏,猫,黑洞还是Jon Skeet的滚筒式烘干机,都是如此。
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |