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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Является ли модель памяти Dalvik такой же, как Java? Меня особенно интересует, являются ли чтения и записи ссылочных и не long/не double примитивных переменных атомарными, но я также хотел бы знать, существуют ли различия между моделями памяти двух ...
03 янв. '11 в 20: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 в 13:15
3

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

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

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

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

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

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