ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
1077187 Топик полностью
evgeniy1294 (14.02.2021 19:45, просмотров: 344) ответил klen на атомарные операции в riscv. __atomic_test_and_set, __atomic_clear, __atomic_fetch_add, __atomic_fetch_sub и тд. понимаю что они делают но не понимаю как применить и где, тыкните в книжицу по теме.
Атомарные операции, предназначены для эффективной реализации синхронизации многопоточного кода, читай "модель памяти С++" (release acquire семантика) и lock-free алгоритмы. Memory order - тип барьера памяти, зависит от типа операции и особенностей модели памяти ядра. В С++ есть std::atomic, как раз на базе этой модели построен. 

SEQ_CST - sequential consistency, полный и самый тяжелый барьер памяти, принудительный сброс кэшей.

RELEASE - применяется для последовательностей load-store, store-store.

Acquire - "захват", применяется для load-load последовательностей команд.