Свързани въпроси 'memory-model'

Объркване относно грешка при внедряване в деструктора shared_ptr
Току-що видях лекцията на Хърб Сътър: C++ and Beyond 2012: Herb Sutter - atomic‹> Weapons, 2 of 2 Той показва грешка в изпълнението на std::shared_ptr деструктор: if( control_block_ptr->refs.fetch_sub(1, memory_order_relaxed ) == 0 )...
825 изгледи
schedule 10.11.2023

Ограничения за подреждане на паметта на x86 архитектура
В своята велика книга „C++ Concurrency в действие“ Антъни Уилямс пише следното (страница 309): Например при архитектури x86 и x86-64 операциите за атомарно зареждане са винаги еднакви, независимо дали са маркирани memory_order_relaxed или...
979 изгледи

Паралелни записи на една и съща стойност
Имам програма, която ражда множество нишки, които могат да запишат точно същата стойност в точно същото място в паметта: std::vector<int> vec(32, 1); // Initialize vec with 32 times 1 std::vector<std::thread> threads; for (int i = 0 ;...
632 изгледи

Кога записите/четенията засягат основната памет?
Когато напиша стойност в поле, какви гаранции получавам относно това кога новата стойност ще бъде запазена в основната памет? Например, как да разбера, че процесорът не запазва новата стойност в личния си кеш, а е актуализирал основната памет? Друг...
433 изгледи

Виждат ли се всички странични ефекти от задачите на изпълнителя след invokeAll?
Ако изпратя някои задачи на Executor с помощта на invokeAll , гарантирам ли ми, че изпратената нишка вижда всички странични ефекти от изпълнението на задачата, дори ако не извикам get() на всяко от върнатите Future s? От практическа гледна...
461 изгледи

Какво означава всеки memory_order?
Прочетох една глава и не ми хареса много. Все още не съм наясно какви са разликите между всеки ред на паметта. Това е текущата ми спекулация, която разбрах, след като прочетох много по-простия http://en.cppreference.com/w/cpp/atomic/memory_order...
29321 изгледи
schedule 10.05.2024