Запитання з тегом «memory-model»

8
C ++ 11 представив стандартизовану модель пам'яті. Що це означає? І як це вплине на програмування на C ++?
C ++ 11 представив стандартизовану модель пам'яті, але що це саме означає? І як це вплине на програмування на C ++? У цій статті (від Гевіна Кларка, який цитує Герба Саттера ) сказано, що: Модель пам'яті означає, що код C ++ тепер має стандартизовану бібліотеку для виклику незалежно від того, …

3
Чи має еквівалент std :: менше від 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, зокрема з семантикою випуску / придбання. Зауважу, що https://preshing.com/20120913/acquire-and-release-semantics/ (серед інших) зазначено, що: ... Семантика випуску запобігає переупорядкуванню пам'яті запису-релізу з будь-якою операцією читання або запису, яка передує їй у порядку програми. Отже, для наступного: typedef struct test_struct { _Atomic(bool) ready ; int …

1
Що означає "сильно відбувається раніше"?
Словосполучення "сильно буває раніше" вживається кілька разів у проекті стандарту C ++. Наприклад: Припинення [basic.start.term] / 5 Якщо завершення ініціалізації об'єкта зі статичною тривалістю зберігання сильно відбувається перед викликом до std :: atexit (див. [Support.start.term]), виклик до функції, переданої в std :: atexit секвенується перед викликом деструктора для об'єкта. Якщо …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.