로컬 변수를 할당하지 않는 pthread를 사용하고 있습니다. 내가 여기로 가지 않을 이유를 들어, 나는 pthread_cancel()
옵션이 필요하고 내가 쓰는 쓰레드는 그것을 지원할 수 있어야한다. (리소스를 정리할 필요가 없다. 어떤 시점에서든 실행을 멈추라.) 지금은 문제가 있습니다. 왜냐하면 pthread가 실제로 실행을 끝내기 전에 pthread_cancel
이 돌아 오기 때문에 스레드 제거 후에 만 만지길 원하는 공유 리소스에 문제가 발생하기 때문입니다.pthread_cancel이 끝날 때까지 기다리는 중
내 pthread가 잘 결론 지어 졌는지 알 수있는 방법이 있습니까? 내가 찾지 못했던 함수 나 친숙하지 않은 매개 변수가 있을까요?
는
pthread_cancel(thread_handle);
pthread_join(thread_handle, NULL);
트릭을 할 것인가, 또는 (thread_handle
부터 이미 유효하지 않을 수 있습니다) 보장되지 않았는지?
저는 pthreads를 처음 접했기 때문에 모범 사례가 환영합니다 (이미 배운 적이있는 "pthread_cancel()
을 사용하지 마십시오", P).