동시성: C 11 메모리 모델의 원자성과 휘발성
질문:
In a 공유 전역 변수가 있는 멀티 스레드 환경에서 한 스레드가 다른 스레드에서 오래된 값을 읽을 수 있습니까? 원자 변수? 데이터 무결성 보장에서 원자 유형과 휘발성 유형은 어떻게 다릅니까?
답변:
휘발성과 원자
휘발성은 어떻게 다른가요? 원자적 접근을 보장하지 않습니다. 주요 목적은 메모리 매핑된 I/O 및 신호 처리입니다. std::atomic과 함께 휘발성을 사용하는 것은 중복됩니다.
원자 변수를 사용한 메모리 순서
원자 변수의 가시성은 메모리 순서 매개변수에 따라 다릅니다. 사용됩니다.
데이터 확보 무결성
데이터 무결성을 보장하려면 exchange() 및 fetch_add()와 같은 RMW(읽기-수정-쓰기) 작업을 사용해야 합니다. 이러한 작업은 항상 "최신" 값으로 작동하므로 오래된 값이 발생할 위험이 없습니다.
추가 고려 사항
위 내용은 C 11의 원자 변수는 다중 스레드 환경에서 오래된 읽기를 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!