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

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

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

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

1
C11 Atomic Acquire / Release и x86_64 отсутствие согласованности загрузки / хранения?
Я борюсь с разделом 5.1.2.4 стандарта C11, в частности с семантикой Release / Acquire. Я отмечаю, что https://preshing.com/20120913/acquire-and-release-semantics/ (среди прочих) заявляет, что: ... Семантика релиза предотвращает переупорядочение памяти релиз-релиза с любой предшествующей ему операцией чтения или записи в программном порядке. Итак, для следующего: typedef struct test_struct { _Atomic(bool) ready ; …

1
Что значит «сильно случается раньше»?
Фраза «сильно случается раньше» используется несколько раз в проекте стандарта C ++. Например: Завершение [basic.start.term] / 5 Если завершение инициализации объекта со статической продолжительностью хранения сильно происходит до вызова std :: atexit (см. [Support.start.term]), вызов функции передается в std :: atexit последовательность перед вызовом деструктора для объекта. Если вызов std …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.