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

По вопросам моделей упорядочения памяти на уровне языка программирования (выше уровня ISA или машинного языка).
6
ответов

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

C++ 11 представила стандартизованную модель памяти, но что именно это означает? И как это повлияет на программирование C++? Эта статья (Гэвин Кларк, цитирующая Херба Саттера) говорит, что, Модель памяти означает, что код C++ теперь имеет стандар...
задан 12 июня '11 в 2:30
2
ответов

Что означает атрибут [[carry_dependency]]?

Может ли кто-нибудь объяснить это на языке, который понимают простые смертные?
задан 20 июня '11 в 15:39
4
ответов

Как "приобретать" и "потреблять" порядки памяти различаются, а когда "потреблять" предпочтительнее?

Стандарт С++ 11 определяет модель памяти (1.7, 1.10), которая содержит порядки памяти, которые, грубо говоря, "последовательно последовательны", "приобретают", "потребляют", "освобождают" и "расслабляют", Точно так же программа правильна, только если...
задан 26 окт. '13 в 20:54
4
ответов

Что делает `std:: kill_dependency`, и зачем мне его использовать?

Я читал о новой модели памяти С++ 11, и я пришел к функции std::kill_dependency (& sect; 29.3/14-15). Я изо всех сил пытаюсь понять, почему я когда-нибудь захочу его использовать. Я нашел пример в предложении N2664, но это мало помогло. Он нач...
задан 22 авг. '11 в 19:16
1
ответ

Является написанием эталонного атома на 64-битных виртуальных машинах

Модель Java-модели требует, чтобы запись int была атомарной: То есть, если вы пишете в нее значение (состоящее из 4 байтов) в одном потоке и читаете ее в другом, вы получите все байты или нет, но не 2 новых байта и 2 старых байта или таковых. Это н...
задан 05 апр. '10 в 4:18
1
ответ

Каковы сходства между моделью памяти Java и моделью памяти С++ 11?

Новый стандарт С++ вводит понятие модели памяти. Были уже вопросы об этом, что это значит, как это изменит способ написания кода в С++ и т.д. Мне интересно узнать, как модель памяти С++ относится к более старой, хорошо известной модели памяти Java (...
задан 09 сент. '11 в 17:47
7
ответов

Что такое модель памяти С++ 03 для concurrency?

Что такое модель памяти для concurrency в С++ 03? (И, улучшает ли С++ 11 модель памяти для поддержки concurrency лучше?)
задан 21 окт. '08 в 7:19
3
ответов

Как компиляторы С++ поддерживают атомарную С++ 11, но не поддерживают модель памяти С++ 11

При взгляде на статус внедрения Clang и g++ С++ 11 я заметил что-то странное: они поддерживают атомы С++ 11, но они не поддерживают модель памяти С++ 11. У меня сложилось впечатление, что у вас должна быть модель памяти С++ 11 для использования ато...
задан 02 июля '12 в 15:40
2
ответов

С++ 11. синхронизируется с std:: mutex медленнее, чем с std:: atomic (memory_order_seq_cst)?

Основная причина использования атомистики над мьютексами - это то, что мьютексы дороги. но с моделью памяти по умолчанию для atomics, являющейся memory_order_seq_cst, разве это не так дорого? Вопрос: может ли одновременная программа с использованием...
задан 30 апр. '13 в 23:20
2
ответов

Что означает каждая память?

Я прочитал главу, и мне это не понравилось. Я все еще не понимаю, каковы различия между каждым порядком памяти. Это мои текущие предположения, которые я понял после прочтения гораздо более простых http://en.cppreference.com/w/cpp/atomic/memory_order ...
задан 10 сент. '12 в 9:39
3
ответов

Модель памяти Dalvik такая же, как Java?

Является ли модель памяти Dalvik такой же, как Java? Меня особенно интересует, являются ли чтения и записи ссылочных и не long/не double примитивных переменных атомарными, но я также хотел бы знать, существуют ли различия между моделями памяти двух ...
задан 03 янв. '11 в 23:28
5
ответов

Может ли JIT свернуть два изменчивых чтения как один в определенных выражениях?

Предположим, что a volatile int a. Один поток выполняет while (true) { a = 1; a = 0; } а другой поток while (true) { System.out.println(a+a); } Теперь, было ли незаконным компилятор JIT испускать сборку, соответствующую 2*a вмест...
задан 19 дек. '14 в 16:15
3
ответов

Можно ли наблюдать частично построенный объект из другого потока?

Я часто слышал, что в модели памяти .NET 2.0 записи всегда используют заборные блоки. Это правда? Означает ли это, что даже без явных барьеров памяти или блокировок невозможно наблюдать частично сконструированный объект (только для ссылочных типов) в...
задан 02 дек. '11 в 18:35
2
ответов

Имеет ли пустая синхронизация (это) {} какое-либо значение для видимости памяти между потоками?

Я прочитал это в предыдущем комментарии к StackOverflow: Но если вы хотите быть в безопасности, вы можете добавить простой синхронизированный (это) {} в конце вашего @PostConstruct [method] [обратите внимание, что переменные НЕ были волатильными]...
задан 28 мая '14 в 11:43
2
ответов

Создает ли std:: mutex забор?

Если я заблокирую std::mutex, я всегда получу забор памяти? Я не уверен, что это подразумевает или принуждает вас к тому, чтобы получить забор. Update: Нашел эту ссылку, следуя комментариям RMF. Многопоточное программирование и видимость памяти
задан 23 июня '12 в 23:56