WaitHandle
과 여러 스레드에서 사용하는 다른 동기화 개체를 volatile
으로 선언해야합니까?WaitHandle (s)을 휘발성으로 선언해야합니까?
답변
volatile
은 필드를 다시 할당하는 경우에만 해당됩니다.
EventHandler의 경우 compiler will handle thread-safety; 당신은 그것에 대해 걱정하지 않아야합니다.
다른 동기화 개체의 경우, 처음에는 변수를 재 할당하지 않아야합니다. (돌연변이와 같지 않음)
readonly
이 아니라 volatile
을 사용하십시오.
을 의미했습니다. 그들은 스레드 문제가있어 "suck it and see"메소드를 통해 해결하려고합니다. –
@Mitch :이 질문에 관한 것이 아닙니다. (로거) – Xaqron
@Xaqron : NO. 그러나 두 가지 질문은 본질적으로 스레딩과 그것의 낯선 것에 관한 것입니다. –
- 1. AtomicReference를 휘발성으로 선언해야합니까?
- 2. Threadpool/WaitHandle 리소스 누출/오류
- 3. C에서 % s을 인쇄하는 방법은 무엇입니까?
- 4. 파이프 라인을 어떻게 선언해야합니까?
- 5. C에서 함수를 선언해야합니까?
- 6. web.config에서 https를 선언해야합니까?
- 7. 자바 서블릿에서 여러 스레드가 액세스하는 변수를 volatile로 선언해야합니까?
- 8. 렌더 타겟 결과를 비 휘발성으로 유지하려면 어떻게해야합니까?
- 9. PHP 클래스에서 언제 변수를 선언해야합니까?
- 10. for 루프 안에 반복자를 선언해야합니까?
- 11. 자바에서 모든 객체 생성을 선언해야합니까?
- 12. 템플릿에 사용되는 함수는 언제 선언해야합니까?
- 13. % 1 $ s을 (를) 사용하는 경우 파일 이름 형식을 지정하십시오.
- 14. 정적으로 주입 된 값을 휘발성으로 만들 필요가 있습니까?
- 15. C#에서 지역 변수를 휘발성으로 사용할 수없는 이유는 무엇입니까?
- 16. 웹 페이지에서 전역 JavaScript 변수는 어디에서 선언해야합니까?
- 17. 멤버 변수를 사용하거나 함수 내에서 변수를 선언해야합니까?
- 18. C89 : 함수를 참조하기 전에 함수를 선언해야합니까?
- 19. Objective-C 및 NSURL : receivedData를 어디에 선언해야합니까?
- 20. 모든 함수를 기본 클래스에 가상으로 선언해야합니까?
- 21. 왜 jsp의 EL 기능을 정적으로 선언해야합니까?
- 22. 코드 이그니 터에서 전역 변수는 어디에 선언해야합니까?
- 23. Public 메서드에서 [DataMember (Order = n)] 특성을 선언해야합니까?
- 24. 이것을 클래스의 const int 멤버 변수로 선언해야합니까?
- 25. 클래스에 특정한 새 삭제 연산자를 정적으로 선언해야합니까?
- 26. Objective C에서 인스턴스를 인스턴스 변수로 선언해야합니까?
- 27. 왜 일반 서브 클래스에서 형식 제약 조건을 다시 선언해야합니까?
- 28. Java에서 가장 깊게 중첩 된 루프의 카운터를 어디에 선언해야합니까?
- 29. 형식화 된 데이터 집합에서 일반 GetDataRow 메서드는 어디에서 선언해야합니까?
- 30. 모듈 수준에서 클래스 별 "상수"를 여전히 선언해야합니까?
@Xaqron :이 방법을 잘못 사용하지 마십시오.하지만 그 질문을하고 있다는 사실은 당신이 뭔가 잘못하고 있다는 것을 의미합니다 ... –
사실이 문제에 대해 의심하는 경쟁 조건이 있습니다. . 쓰레드가'WaitOne()'으로 갈 때 다른 쓰레드'Set()'가 객체를 처리하면 어떨까요? – Xaqron
@Xaqron : 휘발성 이벤트 핸들러의 예를 본 적이 있습니까? –