오늘 멀티 스레드 환경에서 정적 멤버 함수에 관한 문제가 발생했습니다. 우리가 스스로에게 물었고 만족스러운 대답을 찾을 수없는 질문은 다음과 같습니다. 정적 멤버 함수의 정적 varialbes입니까?정적 멤버 함수의 로컬 변수
// header
class A
{
static int test();
}
// implementation
int A::test()
{
int a = rand();
int b = rand();
int c = a + b;
return c;
}
두 개의 스레드 모두 A :: test()를 호출한다고 가정 해 보겠습니다. thread 1이 처리하는 동안 스레드 2가 test()에 들어가고 rand()의 새로운 반환 값을 할당하여 a
의 값을 변경하거나 두 스레드가 a, b 및 c에 대한 일부 메모리 위치를 조작하는지 여부가 가능합니까? ?