|
1 / 1 / 0
Регистрация: 03.08.2017
Сообщений: 205
|
|||||||||||
Имеет ли смысл создавать volatile переменную16.09.2026, 11:08. Показов 14255. Ответов 171
У меня есть функция
0
|
|||||||||||
| 16.09.2026, 11:08 | |
|
Ответы с готовыми решениями:
171
1 класс имеет переменную указатель на 2, 2 имеет на 1 Применение описателя Volatile Пример использования спецификатора volatile |
| 01.10.2026, 20:22 | ||||
|
Данная тема тоже не лишена смысла. Когда надо делать - там уже поздно будет разговаривать, об общих вещах лучше поразмышлять отдельно. Напрасно проигнорировали первый вопрос "не гарантируется что один поток прочитает то что записал другой". Вообще-то все потоки работают в одном адресном пространстве процесса, поэтому "по идее" один поток должен (корректно) прочитать то что записал другой. То есть если бы никаких оптимизаций не было - все бы работало без всяких атомиков и синхронизаций. И чтобы получить ситуацию ошибки - нужно еще постараться. Тем не менее такие ситуации возникают, а отменить оптимизацию нельзя. Надо что-то делать, ну и понеслась - нужна точка/момент синхронизации, которой соответствует прочитанное значение, нужно ее как-то зарядить/инициировать и.т.д. Тут есть о чем поговорить. Может это всем и так ясно - ну хорошо, значит я попал в компанию интеллектуалов ![]() Также незачем чуть что - кричать UB, UB ! (ату его!) Ну вот тот же "неатомарный флажок". Да, лично я никаких выгод не вижу, по-любому лучше сделать его атомиком. Но ведь не ошибка, ничего не рухнет, при работе со старым кодом не нужно бросаться править
0
|
||||
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,372
|
||||||||||||||||
| 01.10.2026, 22:46 | ||||||||||||||||
|
Вот это учил, когда надо было.
Но я не плюсовик а гавно, и код соответственно тоже.
0
|
||||||||||||||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
||||||
| 02.10.2026, 19:32 | ||||||
|
Igor3D, может, что-то такое: потоки пишут
A и B строго по очереди в несинхронизированную строкукстати, я первый раз с атомиками вот именно так "поступаю" (в смысле - с явным указанием acquire/release), пусть меня подправят, если что ![]()
ABABABABABABABABABABABABABABABABABABABABABABABABAB
0
|
||||||
|
Заблокирован
|
||||||
| 02.10.2026, 22:53 | ||||||
|
Алексей1153, тоже самое без атомика и покороче
С++23
1
|
||||||
|
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,372
|
|
| 03.10.2026, 03:04 | |
|
Вспомнил. Тянул мышою резиновую рамку (другим потоком)
и надо было снимать с неё показания. Измерить размер видео... Измеряет... Два цикла вертит. Один в потоке рамки, и ещё один в основной программе. Я не буду здесь мусор выкладывать. Не особо это кому надо.
0
|
|
| 07.10.2026, 01:55 | ||||
), но не более того Когда поток ждет на семафоре, он остановлен и ресурсов не потребляет. Пробуждение потока требует некоторого времени. А в примере Алексей1153, поток крутится в пустом цикле "прожигая процессор", хотя для достаточно быстрой операции += это разумно. Что касается атомиков и синхронизации, то, вроде бы, при использовании стандартных примитивов (мутекс, семафор и др) это не требуется, можно неатомики, все синхронизируется автоматычно. Хотя я об этом нигде не читал, так, предполагаю
0
|
||||
|
фрилансер
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
|
||
| 07.10.2026, 08:18 | ||
|
А так да, такие вещи очень хрупкие. В реальном боевом проекте я использую мьютексы при заполнении и чтении контейнеров, там шустрости хватает пока что. Когда не будет хватать, нужно будет окунуться поглубже в тему атомиков
0
|
||
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
||||||||||||||
| 07.10.2026, 08:55 | ||||||||||||||
*= или что посложнее - и уже запросто возможны варианты.
x уехала вниз и выполняется после установки флага. Даже операция умножения уехала и выполняется после установки флага. То есть вниз уехало немало инструкций. Другой поток запросто может увидеть уже установленный флаг, но еще не готовое x.
1
|
||||||||||||||
|
Заблокирован
|
|
| 07.10.2026, 12:33 | |
|
Igor3D, много чего еще зависит от реализации. Я вот решил немного поисследовать и понял, что мой код будет лучше работать на винде, если скомпилировать его с помощью MSVC. Там передача хода будет быстрее.
Покопался в хидерах моего mingw-w64-ucrt-x86_64-gcc 16.2 на винде: bits/semaphore_base.h и bits/atomic_wait.h и осознал, что в реализации нативное ожидание есть только для Linux (futex), macOS и FreeBSD. Я даже скомпилировал и потом посмотрел imports, там не нашел функций нативного ожидания для винды: WaitOnAddress, WakeByAddressSingle и WakeByAddressAll. Вместо этого были CreateSemaphoreA, ReleaseSemaphore, CreateEventA/W, SetEvent, ResetEvent, WaitForSingleObject, WaitForMultipleObjects и пр.
0
|
|
| 08.10.2026, 14:39 | |
|
0
|
|
| 08.10.2026, 14:39 | |
|
исследование volatile int\ volatile int \ const int
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|