2013-08-02 2 views
0

나는 아래와 같은 기본 정적 표준 : :지도 변수로 클래스 뭔가를 :다른 개체에서 정적 변수를 작성하려면 뮤텍스가 필요합니까?

class base 
    { 
    public : static std::map <int, int> my_statistics; 
    } 

I가, 업데이트, 읽기이 정적 변수에 기록 파생 클래스. 이 파생 클래스는 런타임에 다른 프로세스에 의해 인스턴스화되기 때문에 순차적이든 아니든 확실하지 않습니다. 나는 내가 읽을 때마다 정적 변수에 대해 mutex_lock을 요구할 것인지 (reader lock) 또는 쓰기 (writer lock) 할 것인지를 알고 싶었다.

미리 감사드립니다.

편집 :이 클래스를 인스턴스화하는 프로세스는 아니지만이 클래스를 인스턴스화하는 다른 개체입니다. 그래서 정적 변수를 쓰거나 읽는 다른 객체가 안전한지 아닌지 알고 싶었습니다.

답변

0

다른 프로세스가 동일한 개체 인스턴스를 공유 할 수 없으므로 질문이 의미가 없습니다. "정적"은 과정에서 의미가 있습니다. 서로 다른 프로세스가 동일한 메모리에 액세스하도록하려면 공유 메모리를 사용해야합니다. 귀하의 편집에

새 응답 : 프로세스가 멀티 스레드가 아닌 경우

, 당신이 보호 할 필요가 없습니다. 정적 var를 읽고 쓰는 스레드가 여러 개있는 경우이를 보호해야합니다.

+0

EDITs .. 죄송합니다 .. 내 부분에 실수가 있습니다. – 302Found

+0

프로세스가 멀티 스레드가 아닌 경우 보호 할 필요가 없습니다. 정적 var를 읽고 쓰는 스레드가 여러 개있는 경우이를 보호해야합니다. – TieDad