join()으로 스레드 수명 종료를 명시한다.
보조 함수는 실행을 관찰하거나 미룰 뿐, 동기화가 아니다
세 함수는 현재 스레드의 행동만 바꿉니다. 완료 순서와 공유 데이터 안전성은 다른 도구로 따로 보장해야 합니다.
함수
할 수 있는 일
보장하지 않는 일
get_id()
로그와 디버깅에서 현재 실행 주체를 식별한다.
어떤 스레드가 먼저 끝나는지는 정하지 않는다.
sleep_for()
테스트 지연, 폴링 간격처럼 시간을 일부러 비운다.
조건이 참이 되는 순간을 정확히 기다리지 못한다.
yield()
스케줄러에게 다른 스레드 실행 기회를 넘긴다.
공유 값 보호나 실행 순서 보장은 하지 않는다.
mutex, atomic, 조건 변수로 실제 동기화를 둔다.