나는 pthread
을 통해 생성되고, 결합 가능으로 표시된 자식을 여러 개 가지고 있습니다. pthread_join
을 사용하여 하나씩 기다릴 수는 있지만 누구와도 연결되기를 기다리고 싶습니다 (즉, 어느 한쪽이 종료되자 마자). 어떤 어린이 pthread
이 종료되었는지 어떻게 알 수 있습니까? 유일한 해결책은 pthread_join
을 통해 차례로 폴링하나요?몇개의 pthread (자식)에게 종료 된 것을 알리는 방법
0
A
답변
0
제 생각에 스레드가 완료되면 비동기식 방법이 필요합니다. 코멘트에서 많은 사람들이 말한대로 알림 체계가 있습니다. 비슷한 문제가 있었지만 작업자 스레드에도 통신이 필요했습니다. 메인 스레드에서 도메인 소켓 (수신 대기)을 가졌습니다. 새 스레드가 연결하는 첫 번째 작업은 주 스레드에 연결하고 마지막 연결을 끊는 것입니다 (닫기). 그 동안 주 스레드에서 좋은 이전 select 또는 epoll을 사용하여 fd가 닫힌 시간을 알 수 있습니다.이를 기반으로 어떤 스레드가 닫히고 무엇을해야하는지 파악할 수 있습니다.
+0
훨씬 저렴한 통신 방법은 원자 변수를 사용하거나 큐 (동시 액세스에 대해 뮤텍스로 저장) 일 수 있습니다. 아니면 내가 무엇을 감독 했는가? – Scheff
관련 문제
- 1. 스레드 풀의 스레드에서 pthread 종료
- 2. Windows 서버가 종료되는 것을 알리는 방법
- 3. 다른 폼이 닫히는 것을 폼에 알리는 방법
- 4. xml 네임 스페이스가 자식에게 전달되는 것을 방지합니다.
- 5. 자식 스레드가 종료 될 때 부모 스레드가 알리는 방법
- 6. Android : SoundPool의 재생이 종료 된 것을 확인하는 방법?
- 7. 페이지가 이동되었다는 것을 Google에 알리는 방법은 무엇입니까?
- 8. 몇개의 Tortoise SVN 디렉토리가 필요합니까?
- 9. Windows 응용 프로그램이 종료/종료 또는 중지되는 것을 방지하는 방법
- 10. 병합 할 때 파일이 움직 였다는 것을 자식에게 알리기 위해
- 11. 응용 프로그램이 .net에서 종료된다는 것을 실행 스레드에 알리는 방법은 무엇입니까?
- 12. Pthread, JNI에 의해 생성 된 스레드를 없애기
- 13. 블록 된 pthreads 스레드 종료
- 14. pthread 실행 시간은? 계산 방법?
- 15. 이미지가 변경되었다는 것을 브라우저에 알리는 방법은 무엇입니까?
- 16. 다운로드가 완료되었다는 것을 컨트롤러에 알리는 방법은 무엇입니까?
- 17. 레일에서 작업이 완료되었다는 것을 알리는 가장 좋은 방법
- 18. 보드에있는 특정 핀이 SPI/I2C 용이라는 것을 리눅스에 알리는 방법
- 19. FD가 닫힌 것을 알리는 리눅스 드라이버에서 폴링을 구현하는 방법
- 20. Firebase 알림을 사용하여 값이 Android를 변경했다는 것을 사용자에게 알리는 방법?
- 21. MainWindow가 Folder/Page2.xaml에서 버튼을 클릭 한 것을 알리는 방법
- 22. 업데이트 된 데이터베이스의 커서 adapater에 알리는 방법
- 23. 내가 알고있는 모든 하위 필드를 업데이트 하나 그 필드를 자식에게 알리는 방법은 무엇입니까?
- 24. pthread multithreading
- 25. 신청서에 몇개의 배너 광고를 넣어야합니까?
- 26. 컨테이너에 새로 추가 된 자식에게 GTK 스크롤
- 27. iPhone NSURLConnection에 중단을 알리는 방법
- 28. 출력을 조정하기위한 문서를 알리는 방법
- 29. 자식에게 알림 약속이 종료 된 구성 요소이므로 자식 구성 요소가 메서드를 실행할 수 있습니다. (네이티브 대응)
- 30. 부모로부터 자식에게 메시지 보내기
원하는 코드 만 입력하면됩니다. 스레드가 종료 될 때를 알고 싶으면 코드가 종료되기 전에/전에 알려주도록 코드를 작성하십시오. 또는 각각의 쓰래드가'pthread_join'에서 블록 할 하나의 쓰래드를 기다리면, 원하는 쓰래드를 사용하여 다른 쓰레드가 종료했을 때 그 쓰레드가 알려준다. 원하는 코드를 정확하게 코딩하십시오. –
@DavidSchwartz 당신의 생각을 감사하십시오. wait 알림을 사용하는 대신 pthread_join을 사용하여 하나씩 기다릴 수는 있지만, 수행 한 자식 스레드 #을 도와 준 직접 API가있는 경우 부모 스레드는 다른 작업을 수행 할 수 있습니다. –
이것은 [XY 질문] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)입니다. 당신이 왜 그렇게하기를 핑계 삼을 수 있습니까? – StoryTeller