memory-order

    1

    1답변

    측정되는 업데이트 및 일부 자산의 평균을 반환하는 두 가지 기능이 있습니다 말 평균 계산하는 의미를 획득 : void Class::Update(int delta) { m_accumulatedValue += delta; ++ m_count; } double Class::GetAverage() { return m_accumu

    3

    1답변

    그것이 iterate처럼, 스킵 플래그에 대한 std::memory_order_relaxed을 사용하는 것이 확인 건너 뛰기 : constexpr static const std::size_t capacity = 128; std::atomic<bool> aliveness[capacity]; T data[capacity]; // immuta

    3

    1답변

    std::atomic<int> unique_ids; void foo() { int i = unique_ids.fetch_add(1, std::memory_order_relaxed); std::cout<<i; } int main(int argc, char* argv[]) { std::vector<std::thread> t

    1

    1답변

    #include <atomic> std::atomic<int> val{1}; const auto my_order = std::memory_order_relaxed; // const lvalue int main() { val.store(42, my_order); } 이 코드에는 아무런 관련이 없지만 메모리 순서와 관련하여 이상한 것

    3

    1답변

    는 std::atomic<int> x(0); 가이 전 기능하고 있다고 가정하자 다음 사항을 고려하십시오 : memory_order_relaxed 편안 작동 : description for acquire release memory ordering을 바탕으로 int x_old = x.fetch_add(1,std::memory_order_acq_rel);

    2

    2답변

    스레드 (gcc, Linux, x86)간에 데이터 구조체를 공유하고 싶습니다. 의 내가 스레드 A에 다음 코드 있다고 가정 해 봅시다 : shared_struct->a = 1; shared_struct->b = 1; shared_struct->enable = true; 스레드 B가 enable 플래그 그 구조체 먼저 확인하는주기적인 작업입니다. 필자

    0

    1답변

    gcc에 내장 된 원자 작업 : 는 CAS와 opration을 추가 http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html 내가 원자 조작이 필요합니다. 그것은 내장 기능 __atomic_compare_exchange_n gcc가처럼 조금,하지만 다른 : 그냥이 같은 함수 프로토 타입 : bool

    1

    1답변

    자물쇠가없는 프로그래밍으로 발을 찾으려고합니다. 메모리 순서 지정 의미에 대해 다른 설명을 읽은 다음, 가능한 재정렬이 일어날 수있는 일을 정리하고 싶습니다. 내가 아는 한, 컴파일러 (프로그램 컴파일시 최적화로 인해)와 CPU (런타임시)로 명령을 재정렬 할 수 있습니다. cpp reference는 다음의 예를 제공 이완 의미론 는 : // Thread