사용자로부터 요청을받을 수있는 것보다 게임 서버가 있습니다. 사용자는 조각 배치를 요청할 수 있습니다. 그런 다음 place 메소드는 일부 비동기 httpwebrequests (시간 초과 포함)를 생성하여 배치가 올바른지 확인합니다. 서버가 배치 요청을 받으면 잠글 잠금이 필요하며 웹 콜백에 의해 잠금이 해제됩니다. ReaderWriterLock을 사용 하겠지만 동일한 스레드에 있으면 웹 요청 콜백이 다른 스레드에서 발생하는 경우에만 작동합니다. 내가 사용해야 할 또 다른 자물쇠가 있습니까?한 스레드에서 잠그고 다른 스레드에서 해제
6
A
답변
9
a semaphore을 사용할 수 있습니다. 잠금 스레드가 허가를 얻습니다. 비동기 스레드가 허가를 해제합니다. 세마포어는 개별 스레드에 구속되지 않으므로 멋지다.
4
Semaphore을 사용할 수 있습니다. 매뉴얼에서 인용한다.
세마포어 클래스는 WaitOne 또는 Release 호출시 스레드 식별 정보를 적용하지 않습니다.
즉, 두 개의 다른 스레드에서 획득/해제하는 데 문제가 없어야합니다.
관련 문제
- 1. 멀티 스레드에서 개체 해제
- 2. 한 스레드에서 SQLite 데이터베이스를 닫으면 다른 스레드에서 열린 데이터베이스가 깨집니다.
- 3. 한 스레드에서 변수를 안전하게 읽고 다른 스레드에서 수정하려면 어떻게해야합니까?
- 4. 하나의 스레드를 잠그고 다른 스레드에서 잠금이 해제 될 때까지 대기하는 방법
- 5. 한 스레드에서 다른 스레드로 전송할 수있는 잠금
- 6. 다른 스레드에서 BindingSource에 액세스
- 7. 다른 스레드에서 양식 실행
- 8. 다른 스레드에서 호출합니다.
- 9. 다른 스레드에서 양식을 실행하는
- 10. 다른 스레드에서 배열 채우기
- 11. 다른 스레드에서 UserControl 추가
- 12. Application_Error가 다른 스레드에서 실행되었습니다.
- 13. 다른 스레드에서 posthreadmessage() 사용
- 14. 다른 스레드에서 UI 업데이트
- 15. 다른 스레드에서 계산하기
- 16. 다른 스레드에서 runOnUiThread 호출
- 17. 다른 스레드에서 예외 처리
- 18. 다른 스레드에서 액세스가 거부되었습니다.
- 19. 다른 스레드에서 응답 콜백
- 20. 다른 스레드에서 UI 업데이트
- 21. 다른 스레드에서 UIImagePickerController 닫기
- 22. 다른 스레드에서 QProgressbar 업데이트
- 23. 다른 스레드에서 이벤트 등록
- 24. 다른 스레드에서 ObservableCollection 업데이트
- 25. 다른 스레드에서 HttpRuntime.Cache에 액세스
- 26. MainForm을 잠그고 서브 스레드에서 리턴 값을 기다리는 방법
- 27. 다른 스레드에서 C++ 예외 삽입
- 28. 한 스레드에서 이벤트가 발생하면 .Net의 다른 스레드에서 작업/메서드를 실행하는 가장 좋은 방법은 무엇입니까?
- 29. 다른 스레드에서 UIWebView로드 및 표시
- 30. 다른 스레드에서 스레드 특성 삭제
감사합니다. – Nikhil