Вопросы по теме 'atomic'

Высокоуровневые функции сравнения и замены (CAS)?
Я хотел бы задокументировать, какие функции или макросы высокого уровня (т.е. C++ не встроенный ассемблер) доступны для атомарных примитивов Compare And Swap (CAS)... Например, WIN32 на x86 имеет семейство функций _InterlockedCompareExchange в...
8664 просмотров
schedule 04.03.2023

Перемещение каталога атомарно
У меня есть два каталога в одном родительском каталоге. Назовите родительский каталог base и дочерние каталоги alpha и bravo . Я хочу заменить alpha на bravo . Самый простой метод: rm -rf alpha mv bravo alpha Команда mv атомарна, а...
14803 просмотров
schedule 08.03.2023

Django: как я могу защитить себя от одновременного изменения записей базы данных
Есть ли способ защитить от одновременного изменения одной и той же записи в базе данных двумя или более пользователями? Было бы приемлемо показать сообщение об ошибке пользователю, выполняющему вторую операцию фиксации / сохранения, но данные не...
45894 просмотров

Лучший способ реализовать общую атомарную загрузку или хранение в GCC?
Мне известны встроенные атомарные операции GCC: http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Atomic-Builtins.html Но в этот список не входят очень простые операции, такие как загрузка и сохранение. Я мог бы реализовать их на ограниченных...
3156 просмотров
schedule 13.04.2024

Являются ли операции чтения и записи свойств атомарными в C#?
Чтение и запись в некоторые примитивные типы в C#, такие как bool и int , являются атомарными. (См. раздел 5.5, «5.5 Атомарность ссылок на переменные» в Спецификации языка C#.) Но как насчет доступа к таким переменным через свойства? Разумно...
4971 просмотров
schedule 20.04.2023

Работают ли атомарные операции в процессах так же, как и в потоках?
Очевидно, атомарные операции гарантируют, что разные потоки не затирают значение. Но верно ли это для процессов при использовании разделяемой памяти? Даже если процессы запланированы операционной системой для запуска на разных ядрах? Или на разных...
1151 просмотров

Как обеспечить выравнивание члена по 4 байтам?
Чтобы использовать OSAtomicDecrement (атомарная операция для Mac), мне нужно предоставить SInt32, выровненный по 4 байтам. Работает ли такая кулинария? Есть ли другой способ справиться с проблемами выравнивания? struct SomeClass {...
4414 просмотров
schedule 04.09.2022

Атомарный инкремент в mac OS X
Я погуглил операторы атомарного приращения и декремента в Mac OS X и нашел «OSAtomic.h», но, похоже, вы можете использовать это только в пространстве ядра. Джереми Фриснер указал мне на кросс-платформенный atomic counter в котором используют...
7464 просмотров
schedule 21.08.2022

Является ли fwrite атомарным?
Простой вопрос: Мне нужно добавить ведение журнала в мою программу. Если два процесса используют «fwrite» для одного и того же файла, но с разными файловыми дескрипторами, записываемые сообщения журнала будут атомарными или смешанными. Есть ли...
8926 просмотров
schedule 28.07.2023

Как сделать создание файла атомарной операцией?
Я использую Python для записи фрагментов текста в файлы за одну операцию: open(file, 'w').write(text) Если сценарий прерывается, поэтому запись файла не завершается, я хочу, чтобы файл не был, а был частично завершенным файлом. Можно ли это...
34785 просмотров
schedule 09.11.2022

Являются ли +=, |=, &= и т. д. атомарными?
Являются ли операторы «модификации», такие как += , |= , &= и т. д., атомарными? Я знаю, что ++ является атомарным (если вы выполняете x++; в двух разных потоках "одновременно", вы всегда получите x , увеличенное на 2, в отличие от...
3464 просмотров
schedule 30.05.2022

Атомарный UPSERT в SQL Server 2005
Каков правильный шаблон для выполнения атомарного «UPSERT» (UPDATE, если существует, INSERT в противном случае) в SQL Server 2005? Я вижу много кода на SO (например, см. Проверить, существует ли строка , в противном случае вставьте ) со следующим...
14675 просмотров
schedule 29.03.2022

Атомная переменная Vs. Атомная операция
Допустим, у меня есть две общие переменные — a и b — которые связаны друг с другом. Когда несколько приложений совместно используют эти общие переменные, доступ к ним должен быть атомарной операцией, иначе связь может разорваться. Так что для...
8063 просмотров

PHP переписывает включенный файл - это допустимый скрипт?
Я задал этот вопрос: Взаимное исключение PHP (мьютекс) Как сказано там, я хочу, чтобы несколько источников время от времени присылали свою статистику, и эта статистика отображалась на главной странице веб-сайта. Моя проблема в том, что я хочу,...
901 просмотров
schedule 01.02.2023

Как атомарно прочитать значение в x86 ASM?
Я знаю, как атомарно записать значение в x86 ASM. Но как мне его прочитать? Префикс LOCK нельзя использовать с mov. Чтобы увеличить значение, я делаю: lock inc dword ptr Counter Как читать Counter потокобезопасным способом?
4405 просмотров
schedule 28.04.2022

Файлы с отображением памяти и атомарная запись отдельных блоков
Если я читаю и записываю один файл, используя обычные API-интерфейсы ввода-вывода, записи гарантированно будут атомарными для каждого блока. То есть, если моя запись изменяет только один блок, операционная система гарантирует, что будет записан либо...
3725 просмотров
schedule 17.03.2023

Являются ли операции rsync атомарными на уровне файлов?
Я пытаюсь понять, как, если файлы rsyncing являются атомарными. Я не мог найти никаких подтверждений этому. Из-за того, что rsync может отправлять только дельты, у меня сложилось впечатление, что он также обновляет только части живых файлов. С...
7124 просмотров
schedule 02.11.2022

Почему атомарная директива OpenMP не поддерживает присваивание?
Директива atomic в openmp поддерживает такие вещи, как x += expr x *= expr где expr — выражение скалярного типа, не ссылающееся на x. Я понимаю это, но я не понимаю, почему вы не можете сделать: #pragma omp atomic x = y; Это как-то...
2405 просмотров
schedule 03.04.2024

Накладные расходы на использование блокировок вместо атомарных встроенных функций
Кто-нибудь знает об опубликованных тестах накладных расходов на блокировку вместо того, чтобы полагаться только на определенно атомарные операции/внутренности (в многопроцессорной системе)? Меня особенно интересуют общие выводы, т.е. что-то вроде...
1241 просмотров
schedule 11.09.2022

Блокировка, которую можно перенести из одного потока в другой
Я ищу тип блокировки, при котором поток, удерживающий блокировку, может передать ее другому потоку по своему выбору. Вот почему я этого хочу: У меня есть класс, похожий на ConcurrentHashMap — специализированная коллекция, разделенная на...
2092 просмотров
schedule 28.11.2022