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

Атомная операция неделима. Этот термин используется для описания транзакций в базах данных, низкоуровневых доступов в многопоточных программах и, в частности, операций файловой системы.
29
ответов

Какая разница между атомными и неатомическими атрибутами?

Что означают atomic и nonatomic в объявлениях свойств? @property(nonatomic, retain) UITextField *userName; @property(atomic, retain) UITextField *userName; @property(retain) UITextField *userName; Какова операционная разница между этими тремя?
задан 26 февр. '09 в 5:31
6
ответов

В чем разница между атомными/летучими/синхронизированными?

Как работает атомарная/неустойчивая/синхронизированная работа? В чем разница между следующими кодовыми блоками? Код 1 private int counter; public int getNextUniqueIndex() { return counter++; } Код 2 private AtomicInteger counter; public ...
задан 17 марта '12 в 14:46
6
ответов

Что означает "атомный" в программировании?

В книге "Эффективная Java" говорится: Спецификация языка гарантирует, что чтение или запись переменная является атомарной, если переменная не имеет тип long или double [JLS, 17.4.7]. Что означает "атомный" в контексте программирования Java или п...
задан 24 февр. '13 в 19:57
10
ответов

Практическое применение для AtomicInteger

Я понимаю, что AtomicInteger и другие Атомные переменные допускают одновременный доступ. В каких случаях обычно используется этот класс?
задан 27 янв. '11 в 19:04
8
ответов

Безопасна ли проверка! =?

Я знаю, что сложные операции, такие как i++, не являются потокобезопасными, поскольку они связаны с несколькими операциями. Но проверяет ли ссылка на себя безопасную по потоку операцию? a != a //is this thread-safe Я попытался запрограммировать ...
задан 27 авг. '13 в 11:27
13
ответов

Может ли num ++ быть атомарным для 'int num'?

В общем случае для int num, num++ (или ++num) в качестве операции чтения-изменения-записи не является атомным. Но я часто вижу компиляторы, например GCC, генерирует для него следующий код (попробуйте здесь): Так как строка 5, соответствующая n...
задан 08 сент. '16 в 17:39
4
ответов

Когда использовать volatile с многопоточным?

Если есть два потока, обращающихся к глобальной переменной, то многие учебники говорят, что переменная volatile запрещает компилятору кэшировать переменную в регистре и, таким образом, не обновляется правильно. Однако два потока, получающих доступ к ...
задан 30 дек. '11 в 0:24
6
ответов

AtomicInteger lazySet против набора

В чем разница между методами lazySet и set AtomicInteger? документация не может многое сказать о lazySet: В конце концов задается заданное значение. Кажется, что сохраненное значение не будет немедленно установлено на нужное значение, но вместо...
задан 23 сент. '09 в 22:07
2
ответов

Is id = 1 - id атомный?

Со страницы 291 экзамена на экзамен по программированию на Java SE 6, вопрос 25: public class Stone implements Runnable { static int id = 1; public void run() { id = 1 - id; if (id == 0) pick(); else ...
задан 23 нояб. '14 в 15:56
3
ответов

Почему летучий определитель используется через std:: atomic?

Из того, что я читал из Herb Sutter и others вы считаете, что volatile и параллельное программирование были полностью ортогональными понятиями, по крайней мере, до C/С++. Однако в GCC реализация все функции-члены std::atomic имеют квалификатор vol...
задан 19 марта '10 в 19:52
10
ответов

Django: как я могу защитить от одновременной модификации записей в базе данных

Если существует способ защитить от одновременных модификаций одной и той же записи базы данных двумя или более пользователями? Было бы приемлемо показать сообщение об ошибке пользователю, выполняющему вторую операцию фиксации/сохранения, но данные н...
задан 26 нояб. '08 в 12:00
3
ответов

стоимость эксплуатации атома

Какова стоимость атомной операции (любой из сравнения и замены или атомного добавления/уменьшения)? Сколько циклов он потребляет? Будет ли он приостанавливать другие процессоры на SMP или NUMA или блокирует доступ к памяти? Будет ли он сбросить буфер...
задан 29 марта '10 в 16:11
3
ответов

Где замок для std :: atomic?

Если структура данных содержит в себе несколько элементов, атомная версия не может (всегда) блокироваться. Мне сказали, что это справедливо для более крупных типов, потому что процессор не может атомизировать данные без использования какой-либо блок...
задан 11 мая '18 в 21:38
4
ответов

Понимание std:: atomic:: compare_exchange_weak() в С++ 11

bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak() является одним из примитивов обмена обменом, представленным в С++ 11. Он слабый в том смысле, что он возвращает false, даже если значение объекта равно expected. Э...
задан 08 авг. '14 в 12:11
4
ответов

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

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