많은 스레드가 (아마도 pthread_kill
에 의해 생성 된) 신호를 스레드로 보냈다 고 상상해보십시오. 그러나 스레드는 즉시 스레드를 배치 할 수 없습니다. 이 신호가 없어지겠습니까? 다른 스레드에서 이러한 singals을 diliveried 해결하는 방법? 참조 또는 경험이 있으십니까? ur 고려를위한 tks.스레드가 즉시 신호를 배포 할 수 있습니까?
답변
신호가 특정 스레드로 보내지고 현재 차단 된 경우 스레드에서 보류 상태를 유지합니다. 차단 해제 된 경우 (예 : pthread_sigmask
경유) 적절한 신호 조치가 수행됩니다.
추신. 그들이 대기열에 놓인 신호 (참조 : sigqueue
)가 아닌 한, 다중 신호 중 하나 일지 여부에 대한 정보는 손실됩니다.
스레드가 신호를 배치하고 동작 기능을 실행하려고하면 현재의 순차적 인 작업을 중단해야합니까? 아니면 OS가 신호를 배포하기 위해 스레드를 도울 수 있습니까? –
예, "손실"되었습니다. 신호는 대기열에 있지만 (1), 단순히 설정되고 해제되는 플래그입니다. 따라서 첫 번째 신호 이후에 도착하지만 신호가 처리되기 전에 도착하는 여러 신호는 아무 효과가 없습니다.
해결 방법은 메시지 전달 (실제로는 대부분의 경우)을 위해 유닉스 신호를 사용하지 않는 것입니다. 뮤텍스와 조건 변수의 도움으로 메모리를 통해 통신.
[1] 실시간 신호는 대기열에 넣을 수 있으며 최소한 제한 내에있을 수 있으며 자체적 인 문제가 있습니다.
[스레드 제어 블록] (http://www.cse.iitd.ernet.in/~soumyadeb/projects/mtp/report/node56.html)의 구조에서 신호에 대한 플래그를 찾지 못했습니다. –
@NickDong, 아마도이 커널은 (POSIX) 신호를 구현하지 않습니다. – chill
- 1. 신호를 보내고 즉시 ManualResetEvent를 닫을 수 있습니까?
- 2. 한 스레드가 다른 스레드가 충돌했는지 어떻게 판단 할 수 있습니까?
- 3. Eclipse에서 Tomcat을 즉시 중지 할 수 있습니까?
- 4. 즉시 TCPClient를 종료 할 수 있습니까?
- 5. 스레드가 다른 핸들을 소유 할 수 있습니까?
- 6. 하나의 스레드가 소켓을 열고 다른 스레드가 그것을 닫을 수 있습니까?
- 7. java multithreading - 하위 스레드가 즉시 시작되지 않음
- 8. 스레드가 액세스 할 수 없음보기
- 9. bash에서 * 어느 * 트랩 신호를 감지 할 수 있습니까?
- 10. 시스템에서 OpenCV의 Haar 교육만으로 손으로 신호를 식별 할 수 있습니까?
- 11. Django에서 post_save (또는 other) 신호를 선택적으로 억제 할 수 있습니까?
- 12. PyGI는 set_attribute/적절한 신호를 에뮬레이션 할 수 있습니까?
- 13. Qt가 두 신호를 동시에 호출 할 수 있습니까?
- 14. 피크 정보에서만 오디오 신호를 생성 할 수 있습니까?
- 15. 하나의 클래스가 신호를 생성하고 다른 클래스에서 처리 할 수 있습니까?
- 16. linode로 django를 간단하게 배포 할 수 있습니까?
- 17. PixelSense에 sketchflow wpf를 배포 할 수 있습니까?
- 18. Hadoop은 작업과 코드베이스를 배포 할 수 있습니까?
- 19. 서블릿과 JSP를 OperaUnite에 배포 할 수 있습니까?
- 20. 북마크릿을 FBML으로 어떻게 배포 할 수 있습니까?
- 21. Android에 Silverlight 앱을 배포 할 수 있습니까?
- 22. Windows 서비스를 XCOPY 배포 할 수 있습니까?
- 23. 재귀 알고리즘을 배포 할 수 있습니까?
- 24. C# 프로젝트를 어떻게 배포 할 수 있습니까?
- 25. 다른 사용자의 프로세스에 신호를 보낼 수 있습니까?
- 26. QTcpServer에서 newConnection() 신호를 수신 할 수 없습니다.
- 27. QT에서 슬롯에 신호를 바인딩 할 수 없습니다
- 28. QTcpSocket의 readyRead 신호를 수신 할 수 없습니까?
- 29. 기본 클래스의 신호를 선언 할 수 없습니다
- 30. pthread_join()이 어떤 신호를 발생시킬 수 있습니까?
죄송 합니다만, 실제로, 다른 스레드에서이 노래를 어떻게 저장합니까? –
OS가 POSIX를 준수하면 OS가 해당 OS를 "저장"합니다. – chill