2012-04-22 3 views
1

선언 한 pthread_t 구조체가 사용되지 않았는지 확인할 수 있습니까? 나는 pthread_t 구조체의 배열을 가지고 있고, 프로그램의 끝에 pthread_join()을 호출한다. 그러나 이들 중 일부는 사용되지 않는다면 pthread_join()을 호출하지 않을 것이다. pthread_t 구조체가 사용되지 않았다면 알려주는 가장 좋은 방법은 무엇입니까?pthread_t 구조체가 사용되지 않았는지 확인할 수 있습니까?

답변

3

pthread_join()에 전달 된 pthread_t 개체는 조인 가능한 스레드를 참조해야합니다. 그래서 당신은 이것을 스스로 추적 할 필요가 있습니다 - pthread_t 객체와 함께 깃발을 사용하여 그것이 사용되었는지 추적 할 수 있습니다 (아마도 pthread_t가있는 구조체에 플래그를 패키지화합니다).

pthread_t 개체를 아직 사용하지 않은 상태에서 스레드를 분리하거나 가입하면 플래그를 지워야한다는 사실을 명심하십시오 (이것이 포괄적 인 목록인지 잘 모르겠습니다). pthread_t 오브젝트가 '결합 불가능'이되면 ...).

+0

그리고'pthread_t '는 반드시 구조체는 아닙니다! 이것은 여러분이 아는 모든 것에 대해'some_type *'또는'unsigned int'가 될 수있는 불투명 한 타입입니다. 최근의 POSIX 정오표 (2004)만이'pthread_t '가 산술 형이되어 구조체가 될 수 있다는 요구를 제거했다. – Kaz

관련 문제