전 세계적으로 여러 변수를 저장하는 간단한 서버를 만들고 있습니다. 경우에 따라 이러한 변수가 업데이트되고이 시간 동안 변수는 다른 스레드에서 잠 깁니다. 서버에 액세스하는 각 클라이언트는 자체 스레드가 부여되지만 이러한 변수를 변경할 방법이 없으며 기본적으로 읽기 전용입니다. 인터넷에 대한 나의 질문은 내가 (a) 두 스레드가 같은 변수를 동시에 읽거나 (변경하지 않음) 또는 b) 가변 프로세스를 작성하여 읽기 프로세스를 방해하는 것입니다.linux에서 double 연산을 읽고 있습니까?
대부분의 경우 double을 쓰는 것은 일반적으로 하나 이상의 레지스터이기 때문에 원자 연산이 아니지만 읽기 작업을 중단 할 수 있습니까?
감사
어떤 아키텍처 (x86, AMD64 등)? –
"(아무것도하지 말고 동기화 프리미티브를 호출하는) 원자력 작업이 무엇이든간에"대답은? 보통 "아니오"입니다. –
가능한 복제본 [Double update atomic] (http://stackoverflow.com/questions/1292786/is-updating-double-operation-atomic) – Suma