Я читал различные сообщения о методе lazySet () на AtomicInteger, который в-short означает, что видимость заданного значения может быть сразу не распространена на другие потоки (это не полный ...
Предположим, что у меня есть свои собственные неподставляемые функции LockMutex и UnlockMutex, которые используют некоторое надлежащее взаимное исключение - такое как повышение - внутри. Как компилятор будет знать для не переупорядочения других операций с
Ранее я написал некоторый очень простой многопоточный код, и я всегда знал что в любое время могло быть контекстное переключение прямо в середине того, что я делаю, таким образом, я всегда охранял...
В «C # 4 в двух словах», автор показывает что этот класс может писать 0 иногда без MemoryBarrier, хотя я не могу воспроизвести в моем Core2Duo: публичный класс Foo
{int _answer; bool _complete;
...
Это легко к барьерам памяти аппарата на стороне ядра: МБ макросов, wmb, юань, и т.д. всегда на месте благодаря заголовкам ядрa Linux. Как выполнить это на стороне пользователя?
Что касается моего более раннего вопроса на не полностью созданных объектах, у меня есть второй вопрос. Как Jon Skeet указал, существует неявный барьер памяти в конце конструктора, который делает...
Я пытаюсь улучшить свое понимание барьеров памяти. Предположим, что у нас есть слабая модель памяти, и мы адаптируем алгоритм Dekker. Действительно ли возможно заставить его работать правильно под слабой моделью памяти...
Я проверяю, как компилятор выдает инструкции для многоядерных барьеров памяти на x86_64. Ниже приведен код, который я тестирую с помощью gcc_x86_64_8.3. станд :: атомарный & л; BOOL > флаг {ложь}; инт ...
Я недавно читал о барьерах памяти и проблеме переупорядочения, и теперь у меня есть некоторая путаница в этом Рассмотрим следующий сценарий: закрытый объект _object1 = null; закрытый объект _object2 = ...
У меня есть некоторые неизменные структуры данных, что я хотел бы справиться с подсчетами ссылок использования, совместно используя их через потоки в системе SMP. Вот то, на что похож код выпуска: освободите avocado_release (...
Некоторые языки обеспечивают энергозависимый модификатор, который описан как выполнение "барьера памяти чтения" до чтения памяти, это поддерживает переменную. Барьер памяти чтения обычно описывается как...
В.NET ключевое слово блокировки является синтаксическим сахаром вокруг Монитора. Войдите и Монитор. Выход, таким образом, Вы могли сказать, что эта блокировка кода (блокировщик) {//Делает что-то}, совпадает с Монитором. Войдите (блокировщик); попробуйте {
C # 4 в Nutshell (настоятельно рекомендуется, кстати) использует следующий код для демонстрации концепции MemoryBarrier (при условии, что A и B выполнялись в разных потоках): class Foo {int _answer; bool ...
Мы с коллегой пишем программное обеспечение для различных платформ, работающих на x86, x64, Itanium, PowerPC и других серверных процессорах 10-летней давности. Мы только что обсудили, могут ли мьютексные функции, такие как .. .
Вопрос Java 6 API. Вызов LockSupport.unpark (поток) имеют происхождение - перед отношениями к возврату из LockSupport.park в просто непаркуемом потоке? Я сильно подозреваю, что ответ да...
В черновике C ++ 0x есть понятие ограждений, которое кажется очень отличным от понятия ограждений на уровне процессора / микросхемы, или сказать, что ребята с ядром linux ждут от заборов. Вопрос в том, действительно ли черновик ...
Если я заблокирую std::mutex, всегда ли я буду получать ограничение памяти? Я не уверен, подразумевает ли это или заставляет вас получить забор. Обновление: нашел эту ссылку после комментариев RMF. Многопоточность...
Я прочитал «Руководство по оптимизации Intel для архитектуры Intel». Однако я до сих пор не знаю, когда мне использовать _mm_sfence ()
_mm_lfence ()
_mm_mfence () Может ли кто-нибудь объяснить, когда эти ...
В кодовой базе, которую я просмотрел, я нашел следующую идиому. void notify (struct act_t act) { write (act.pipe, "M", 1);
}
// поток A отправляет данные в поток B
void send(byte *data) { global.data = ...
Я пишу многопоточное приложение на С++, где производительность имеет решающее значение. Мне нужно использовать много блокировок при копировании небольших структур между потоками, для этого я решил использовать спин-блокировки....
Citind tutorialul de threading al lui Joseph Albahari, următoarele sunt menționate ca generatoare de bariere de memorie: Instrucțiunea de blocare a C # (Monitor.Enter / Monitor.Exit)
Toate metodele din clasa Interlocked ...
Прежде всего, я знаю, что блокировка {} - это синтетический сахар для класса Monitor. (о, синтаксический сахар) Я играл с простыми проблемами многопоточности и обнаружил, что не могу полностью понять, как lockng ...
To implement a lock free code for multithreading application I used volatile variables,
Theoretically: The volatile keyword is simply used to make sure that all threads see the most updated value of a ...
В отличие от барьера () (который, я думаю, я понимаю), mem_fence () не влияет на все элементы в рабочей группе. В спецификации OpenCL сказано (раздел 6.11.10) для mem_fence (): Заказы на загрузку и сохранение работы -...
Что касается этого вопроса, меня интересуют только x86 и x86-64. Для MSVC 2005 в документации для __faststorefence говорится: «Гарантирует, что каждое предыдущее хранилище будет глобально видимым перед любым ...
Я вижу, что блокировка мьютексов С++ 11 не является недействительной блокировкой ()volatile. Как компилятор узнает, какие функции являются барьерами памяти, а какие нет? Все ли функции являются барьерами, даже если они не изменчивы? Что...
Есть ли арки, где реализован барьер памяти даже при сбросе кеша? Я читал, что барьер памяти влияет только на переупорядочивание ЦП, но я читал утверждения, связанные с барьерами памяти :, что гарантирует...
Барьеры памяти гарантируют, что кэш данных будет согласованным. Однако гарантирует ли это, что TLB будет согласованным? Я наблюдаю проблему, когда JVM (java 7 update 1) иногда падает ...
Предположим, что поток Alpha записывает в переменную A без блокировки. Второй поток Beta ожидает завершения Alpha, а затем по очереди считывает переменную A. Возможно ли, что содержимое A ...
Я пытался искать детали на этом, я даже прочитал стандарт на Mutexes и Atomics ... но все же я не мог понять C + +11 Гарантии видимости памяти памяти.
Из того, что я понимаю, очень ...