多个线程调用相同的函数是否安全?

jma*_*erx 20 c c++ multithreading

例如,安全吗:

void AddTwo(int &num)
{
  num +=2;
}


void ThreadProc(lpvoid arg)
{
AddTwo((int)arg);

}
Run Code Online (Sandbox Code Playgroud)

如果4个线程同时执行此操作会发生这种情况吗?谢谢

Shi*_*rik 24

该功能本身可以安全地呼叫.如果他们都在尝试对同一个变量进行操作,那就变得危险了.

  • 正确.我在谈论地址'num'引用,而不是'num'本身.您尝试从多个线程修改全局变量的示例是问题案例之一. (2认同)