|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||||||
Переупорядочивание операций процессором13.04.2021, 22:45. Показов 2228. Ответов 42
Метки нет (Все метки)
Разве в многопоточной программе причиной видимости потоками разных состояний разных переменных является переупорядочивание процессором?(Если компилятор не применяет оптимизаций)?
К примеру почему может НЕ упасть(ассерт сработает) следующий код?
0
|
||||||
| 13.04.2021, 22:45 | |
|
Ответы с готовыми решениями:
42
Переупорядочивание элементов массива Скорость выполнения операций процессором
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 13.04.2021, 23:34 [ТС] | |
|
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 13.04.2021, 23:34 | ||
|
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 13.04.2021, 23:41 [ТС] | |
|
zayats80888, тоесть к примеру если взять самую "простую" архитектуру, тогда барьер release в теории должен дождаться всех операций из store buffer(ну либо пометить их , чтобы операции записи не прошли мимо них) и дождаться всех чтений(вот тут я не особо знаю как работают чтения, в тех примерах которые я читал Memory Barriers: a Hardware View for Software Hackers была invalidation queue, но я знаю что её по факту нет)
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 13.04.2021, 23:42 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 13.04.2021, 23:52 [ТС] | |
|
hoggy, ничего не понял,какой тогда смысл в такой гарантии если она не гарантирует это для потоков?
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 13.04.2021, 23:56 | ||
|
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 13.04.2021, 23:59 [ТС] | |
|
zayats80888, но в С++ подобные абстракции только создают отношения "синхронизируется с" и "происходит до", по сути ничего больше , с того что я понял, поправьте если не так
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 14.04.2021, 00:06 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 14.04.2021, 00:16 [ТС] | |
|
zayats80888, мне - ещё не знаю ТК я не до конца разобрался с этим,на данный момент я хочу понять как работают разные барьеры в С++ по отношению к примитивной архитектуре,не более
0
|
|
| 14.04.2021, 00:21 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||||||
| 14.04.2021, 08:11 [ТС] | ||||||
|
zayats80888, это само собой)
а в этом примере?
0
|
||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 14.04.2021, 09:16 | ||
|
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 14.04.2021, 09:20 [ТС] | |
|
zayats80888, действительно так и есть,но барьеры там - это линуксовые барьеры, а у меня в примере барьеры С++.
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||||||
| 15.04.2021, 13:59 [ТС] | ||||||
|
zayats80888, можете пожалуйста объяснить как инструкция может выполниться раньше другой, если не считать перестановку компилятором?
Вот есть у меня спинлок, его lock() это acquire, unlock() это release, acquire как бы обозначает что все операции чтения до барьера закончаться ДО любых операций после барьера, тоесть как бы не дает операциям после барьера "пролезть" перед ним, так вопрос следующий : Как операции вообще могут случиться перед барьером? Если есть
0
|
||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 15.04.2021, 15:04 | |||
|
В сети полно объяснений и примеров, как камни извлекают и выполняют инструкции.
1
|
|||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|||||||||||
| 15.04.2021, 15:16 [ТС] | |||||||||||
|
zayats80888, еще такой вопрос:
1. Мне понятно как работает "synchronizes with" в случае с release-acquire записью-считыванием, к примеру
А что если acquire-release? к примеру
0
|
|||||||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 15.04.2021, 15:34 | |||
|
0
|
|||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||
| 15.04.2021, 16:00 [ТС] | ||
|
zayats80888,
0
|
||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 15.04.2021, 16:09 | ||
|
0
|
||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||
| 15.04.2021, 16:12 [ТС] | ||
|
zayats80888,
mutex ac-rel
0
|
||
| 15.04.2021, 16:12 | |
|
Переупорядочивание значений Переупорядочивание пользователем списка ListView Составить программу с использованием одномерных массивов для решения задачи на переупорядочивание элементов массива Составить программу с использованием одномерных массивов для решения задачи на переупорядочивание элементов массива Составить программу с использованием одномерных массивов для решения задачи на переупорядочивание элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|