동기화는 보통 전역변수에 대한 write시에 하는 것으로 알고 있습니다.
그런데 로컬 static 변수에 대해서도 동기화를 해야하는 건가요??
로컬 변수라 하지 않아도 되는 것인가요?
그리고 동적할당 변수도 동기화 해줘야 하는건가요?
즉, 스택영역을 제외한 데이터영역과 힙영역에 저장되는 변수들은 모두 동기화 시켜줘야 하는건가요?
동기화의 범위를 어디까지 해야하는지 궁금합니다.
말씀하신 static은 해당 함수에서만 사용할 수 있는 일종의 전역 변수입니다. 해당 함수가 동시에 여러 thread에서 호출될 수 있다면 당연히 동기화가 필요합니다. 즉 staic인지 아닌지 보다는 해당 변수가 동시에 여러 context에서 실행될 수 있는지에 따라 동가화 필요 여부가 결정되겠습니다. 힙영역에 할당되는 메모리에도 동일한 규칙이 적용됩니다. 또한가지는 해당변수의 read/write가 원자적으로 수행되지 않는다면 read시에도 동기화가 필요합니다.
동기화.
말씀하신 static은 해당 함수에서만 사용할 수 있는 일종의 전역 변수입니다. 해당 함수가 동시에 여러 thread에서 호출될 수 있다면 당연히 동기화가 필요합니다. 즉 staic인지 아닌지 보다는 해당 변수가 동시에 여러 context에서 실행될 수 있는지에 따라 동가화 필요 여부가 결정되겠습니다. 힙영역에 할당되는 메모리에도 동일한 규칙이 적용됩니다. 또한가지는 해당변수의 read/write가 원자적으로 수행되지 않는다면 read시에도 동기화가 필요합니다.
--------------------------------------------------------------------------------------
조금씩이라도 전진한다.
답변 감사합니다..
답변 감사합니다..
댓글 달기