언어, 라이브러리/C, C++
[C, C++] Thread에서 시간함수 사용시 주의점
스레드에서 clock함수 사용 시 발생하는 문제 스레드를 여러개 만들고 각 스레드에 시간 함수인 clock을 사용하면 시간이 이상 출력될 수 있다. 예를 들어 pthread를 이용하여 만든 스레드가 두 개일 경우 시간이 두배로 흘러가고 세 개일 경우 세배로 흘러간다. 이는 clock함수가 프로세스 클록 횟수를 이용하여 시간을 얻어오는데, 스레드끼리 클록 횟수를 공유하여 스레드가 호출될 떄마다 프로세스 클록이 증가하는 것으로 보인다. clock 대신 clock_gettime 사용 clock 대신 clock_gettime함수를 사용하여 위 문제를 해결할 수 있다. clock_gettime함수는 CLOCK_REALTIME과 CLOCK_MONOTINIC 방식 중 선택하여 시간을 얻어올 수 있는데, CLOCK_R..
2021. 3. 9. 00:01
최근댓글