쓰레드 안정성1 쓰레드에 안전한 초기화용 boost library 프로그램을 짜다 보면 딱 한번만 실행해야 하는 함수들이 있을수 있다. 그런경우 아래와 같이 static bool 변수같은걸 두고 그 값에 따라서 수행하기도 하는데 #include ... static bool once = true; if ( once ) { MUTEX_LOCK(); call_once(); once = false; MUTEX_UNLOCK(); } ... 이 함수가 multi thread 접근을 하는경우 초기화가 다중으로 될 수 있는 위험이 있다. 다행히 boost에서 thread 에 안전한 함수를 제공한다. boost::call_once() 는 연결된 함수포인터를보고 단 한번만 수행한다. 두번째로 받는 파라미터는 boost::once_flag 형이다. thread safe 하다. boost:.. 2010. 3. 19. 이전 1 다음