Вопросы с тегом «memory-model»

1894
C ++ 11 представил стандартизированную модель памяти. Что это значит? И как это повлияет на программирование на C ++?

C ++ 11 представил стандартизированную модель памяти, но что именно это означает? И как это повлияет на программирование на C ++? В этой статье ( Гэвин Кларк, которая цитирует Херба Саттера ) говорится, что Модель памяти означает, что код C ++ теперь имеет стандартизированную библиотеку для вызова...

205
Почему эта Java-программа завершает работу, несмотря на то, что, очевидно, она не должна (и не должна)?

Чувствительная операция в моей лаборатории сегодня прошла совсем не так. Привод на электронном микроскопе перешел ее границы, и после череды событий я потерял оборудование на 12 миллионов долларов. Я сузил более 40K строк в неисправном модуле так: import java.util.*; class A { static Point...

26
Есть ли в C эквивалент std :: less из C ++?

Недавно я отвечал на вопрос о неопределенном поведении p < qв C, когда pи qесть указатели на разные объекты / массивы. Это заставило меня задуматься: <в этом случае C ++ имеет такое же (неопределенное) поведение , но также предлагает стандартный шаблон библиотеки, std::lessкоторый...

18
Для чего используются заборы памяти в Java?

Пытаясь понять, как SubmissionPublisher( исходный код в Java SE 10, OpenJDK | docs ), новый класс, добавленный в Java SE в версии 9, был реализован, я наткнулся на несколько вызовов API, о которых VarHandleраньше не знал: fullFence, acquireFence, releaseFence, loadLoadFenceИ storeStoreFence....

10
C11 Atomic Acquire / Release и x86_64 отсутствие согласованности загрузки / хранения?

Я борюсь с разделом 5.1.2.4 стандарта C11, в частности с семантикой Release / Acquire. Я отмечаю, что https://preshing.com/20120913/acquire-and-release-semantics/ (среди прочих) заявляет, что: ... Семантика релиза предотвращает переупорядочение памяти релиз-релиза с любой предшествующей ему...

9
Что значит «сильно случается раньше»?

Фраза «сильно случается раньше» используется несколько раз в проекте стандарта C ++. Например: Завершение [basic.start.term] / 5 Если завершение инициализации объекта со статической продолжительностью хранения сильно происходит до вызова std :: atexit (см. [Support.start.term]), вызов функции...