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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Является ли файл append атомарным в UNIX?

В общем, что мы можем считать само собой разумеющимся, когда добавляем к файлу в UNIX из нескольких процессов? Возможно ли потерять данные (один процесс перезаписывает другие изменения)? Возможно ли, чтобы данные были искалечены? (Например, каждый пр...
20 июл. '09 в 16:07
6

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

В чем разница между методами lazySet и set AtomicInteger? документация не может многое сказать о lazySet: В конце концов задается заданное значение. Кажется, что сохраненное значение не будет немедленно установлено на нужное значение, но вместо...
23 сент. '09 в 19: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 в 12:56
4

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

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

Как реализовать многопоточный безопасный синглтон в С++ 11 без использования <mutex>

Теперь, когда С++ 11 имеет многопоточность, мне было интересно, какой правильный способ реализовать ленивый инициализированный синглтон без использования мьютексов (по первичным причинам). Я придумал это, но tbh Im действительно не очень хорошо пишет...
29 июл. '12 в 18:42
3

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

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

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

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

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

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