답변
현실적으로 예상 할 수있는 환경에서 작동하도록 설계된 재사용 가능하고 확장 가능한 구성 요소이기 때문에 구성 요소에 스레드 보호를 설계합니다. 여러 번 처음에는 단일 스레드 환경에서 사용됩니다. 구현의 범위가 더 많은 스레드를 포함하도록 확장되는 경우가 종종 있습니다. 그런 다음 새로운 액세스 시나리오로부터 보호하기 위해 리소스를 추적 할 필요가 없습니다.
내부 프로세스 전체 공유 대신 Mutex를 시스템 전체 공유에 사용할 수 있기 때문에 뮤텍스를 이해할 수 있습니다. 예를 들어 뮤텍스를 prevent an application from being started twice에 사용할 수 있습니다.
이것은 조금 밖에있을 수 있지만 재귀 함수를 작성하고 각 레벨을 별도의 리소스로 등록한다고 가정 해 보겠습니다. 이렇게하면 한 곳에서 자원 정리의 책임을 지울 수 있습니다. (자원 풀).
진정한 싱글 스레드 응용 프로그램에서, 아마도 이것에 대한 더 나은 옵션이있을 것입니다 ... –
@Reed - 나는 그것을 확신합니다. 그래서 제가 작은 면책 조항을 추가했습니다. – ChaosPandion
트릭 질문과 같은 소리입니다. 기술적으로는 그렇습니다. 명명 된 뮤텍스는 각각 하나의 스레드를 포함하는 여러 프로세스를 동기화하는 데 사용될 수 있습니다.
system-wide semaphores
(심지어는 뮤텍스)을 사용하여 inter-process communication
을 사용할 수 있습니다.
예를 들어, 명명 된 세마포어로 acquire()/release()
을 실행하면 단일 스레드 프로세스에서 다른 단일 스레드 프로세스로 신호를 보낼 수 있습니다.
시스템 인터럽트를 지원하는 환경에서는 비선형 동작이 추가됩니다. 세마포어는 인터럽트 트리거까지 주 스레드에서 휴면 모드로 사용할 수 있습니다.
- 1. 코코아에서 다른 스레드의 세마포어 잠금 및 잠금 해제
- 2. 자바에서 세마포어
- 3. 스레딩 세마포어
- 4. FIFO 세마포어 테스트
- 5. 파이썬에서의 세마포어 클린업
- 6. 세마포어 작동 방법 테스트
- 7. 명령 줄 세마포어 유틸리티
- 8. 세마포어 및 sem_wait() 문제
- 9. 운영 체제의 세마포어
- 10. 세마포어 경쟁 조건?
- 11. 프로세스가 세마포어 값
- 12. 비 관리 코드의 세마포어
- 13. Ada95의 스레드 및 세마포어
- 14. 세마포어 소유권/변경
- 15. 여러 사용자를위한 세마포어
- 16. POSIX 세마포어 이름을 얻으려면
- 17. .Net의 세마포어 클래스에 관해서
- 18. 프로세스 내에서 단일 스레드의 CPU 사용률을 찾는 방법
- 19. 스레드의 매개 변수 처리
- 20. Linux 프로세스 간 재진입 세마포어
- 21. POSIX - 세마포어, mutexes, 스레드 C
- 22. 값 0에 대한 세마포어 동기화
- 23. posix 프로세스 간 세마포어 이해하기
- 24. 스레드의 동시성
- 25. 스레드의 신원 :
- 26. 스레드의 CheckPixelColor
- 27. 생산자/소비자 스레드의 스로틀 소비자
- 28. 다른 스레드의 WPF 액세스 GUI
- 29. C#의 세마포어 시간 초과 메커니즘
- 30. 이 세마포어 코드가 실패하는 이유는 무엇입니까?
그래, 동시성에 관해서 생각하는 것이 항상 좋은 생각이다. – ChaosPandion
예, 이것이 제가 직면 한 문제입니다. 현재 내 프로그램은 단일 스레드이지만, 앞으로 여러 스레드가있을 가능성이 높습니다 ... – Mewzer