멀티 스레드 환경에서 여러 스레드가 동시에 하나의 객체 및 변수에 접근할 때, 의도한데로 동작하는 것을 의미한다 .
thread safe 구현을 위해서는 임계 영역을 동기화 기법으로 제어해야 한다.
스레드가 동시에 접근하다러도 언제나 같은 실행 결과를 보장해야 한다.
// 실행되는 시점에 따라 결과가 달라짐
int g_var = 1;
…
int f()
{
g_var = g_var + 2;
return g_var;
}
int f(int i)
{
int priv = i;
priv = priv + 2;
return priv;
}