변수가 읽는 동안 수정 될 위험이 없다고 가정하면 변수가 동시에 두 개 이상의 스레드에서 읽히는 고유 한 문제가 있습니까?은 thread-safe 변수를 동시에 읽을 수 있습니까?
15
A
답변
9
귀하의 가정이 유지되면 아무런 문제가 없습니다.
0
데이터베이스가 공통적으로 shared read locks을 사용할 수 있다는 점을 고려하면 어떤 클라이언트가 동일한 블록을 읽을 수 있는지 직접적인 문제는 없다고 생각합니다.
0
세자를 입력하십시오.
편집 : 예, 스레드로부터 안전합니다. 아니요, 문제 없습니다. 사람들은 일반적으로 무언가 스레드로부터 안전한지 여부를 묻습니다. 스레드가 안전하지 않은 경우가 아닙니다.
3
일반 변수 인 한 위험하지 않습니다.
속성 인 경우 속성을 읽을 때 부작용이 발생할 수 있으므로 스레드로부터 안전하지 않을 수 있습니다.
7
이 작업은 본질적으로 스레드로부터 안전하지 않습니다.
변수가 현재 쓰여지고 있지는 않지만 변수에 대한 이전 쓰기가 모든 스레드에서 아직 보이지 않을 수 있습니다. 이는 두 스레드가 동일한 값을 읽고 다른 결과를 얻어 경쟁 조건을 생성 할 수 있음을 의미합니다.
이것은 메모리 장벽, 휘발성 또는 다른 몇 가지 메커니즘의 올바른 사용을 통해 예방할 수 있습니다. 우리는 귀하의 환경, 특히 언어에 대해 더 자세히 알아야 완전한 설명을 할 수 있습니다.
질문을 약간 다시 쓰면 더 좋은 답변을 얻을 수 있습니다. 더 이상의 쓰기가없고 모든 이전 쓰기가 현재 스레드에서 볼 수 있다고 가정하면 여러 스레드에서 값을 읽는 것이 안전합니다.
관련 문제
- 1. 동시에 교체하고 읽을 수 있습니까?
- 2. oracle에서 동시에 읽을 수 있습니까?
- 3. 배열에 변수를 쓰려면 threadsafe 연산이 필요합니까?
- 4. 포인터가없는 fread를 사용하여 동적 길이 변수를 읽을 수 있습니까?
- 5. C#은 존재하지 않는 파일에서 읽을 수 있습니까?
- 6. 파일을 읽을 수 있습니까?
- 7. 자바 스크립트 디버거가 "이 변수를 읽을 때"할 수 있습니까?
- 8. 포틀릿에서 페이지 요청 매개 변수를 읽을 수 있습니까?
- 9. 스레드가 VCL 이벤트로 설정된 변수를 안전하게 읽을 수 있습니까?
- 10. Threadsafe Guice Binding
- 11. 은 Android에서 동시에 파일을 다운로드합니다.
- 12. 동시에 읽을 수있는 여러 파일 열기
- 13. maven1과 maven2를 동시에 실행할 수 있습니까?
- 14. UDP 소켓에 쓸 동시에 소켓에서 읽을
- 15. 어디서 파일을 읽을 수 있습니까?
- 16. node.js는 URL로부터 읽을 수 있습니까?
- 17. 방문자의 쿠키를 읽을 수 있습니까?
- 18. 파이프에서 gcc를 읽을 수 있습니까?
- 19. 하나의 파일을 버퍼로 사용할 수 있습니까? 나는. 동시에 쓰고 읽을 수 있습니다.
- 20. 다중 사용자 .NET 웹 응용 프로그램에서 비 threadsafe 라이브러리를 사용할 수 있습니까?
- 21. file()은 읽을 때 파일을 잠근다?
- 22. SQL Server에서 CLR Threadsafe
- 23. GetEnumerator ThreadSafe 만들기
- 24. 동시에 여러 개의 NIC를 동시에 사용할 수 있습니까?
- 25. Threadsafe java servlet
- 26. VB.NET RaiseEvent, threadsafe?
- 27. Threadsafe vs Re-entrant
- 28. 은 동시에 데이터베이스의 여러 테이블에 삽입
- 29. 은 perl/tk 파일 내용을 읽을 수 없습니다. TEXT
- 30. fscanf()가 공백을 읽을 수 있습니까?
그의 가정이 사실인지 알아내는 것이 문제가되지 않습니까? (그렇지 않을 수도 guffa의 답변을 참조하십시오 : http://stackoverflow.com/questions/3033425/are-simultaneous-reads-of-a-variable-thread-safe/3033439#3033439) – Kris
현재 쓰기가 없습니다 이전의 권한은 경쟁 조건을 만드는 모든 스레드에 아직 표시되지 않을 수 있습니다. 자세한 내용은 내 대답을 참조하십시오. – JaredPar
@Kris, @JaredPar : 충분히 사실이지만 OP의 질문에 대답하고 있습니다. :-) –