Результаты поиска по запросу "atomic"

1 ответ

Это правильно. Он использует стратегию, называемую «чередование блокировок», для уменьшения конкуренции за глобальную блокировку хранения. Это все еще довольно медленно, поэтому, если у вас есть объект с очень большим оттоком перерасчета, может быть целесообразно внедрить собственную систему перерасчета. Это не особенно сложно (используйте OSAtomicIncrement () и друзей), но вы потеряете возможность проверять историю пересчетов в Инструментах для этих объектов.

тся ли метод сохранения NSObject атомарным? Например, при сохранении одного и того же объекта из двух разных потоков обещано ли, что количество сохраненных данных увеличилось в два раза, или можно увеличить число сохраненных только один ...

1 ответ

@PeterCordes Я полностью согласен .. Безопасно использовать односторонний барьерный подход для описания того, как все работает. Это также (по крайней мере, для меня) самый простой способ визуализации вещей.

ели памяти C ++ существует общий порядок для всех загрузок и хранилищ всех последовательно согласованных операций. Мне интересно, как это взаимодействует с операциями, которые имеют другие упорядочения памяти, которые упорядочены до / после ...

1 ответ

"остаток> 0? остаток: остаток + n;" в этом выражении есть ли причина добавлять остаток к n, когда он равен 0?

де понимаю, что AtomicInteger и другие переменные Atomic допускают одновременный доступ. В каких случаях этот класс обычно используется?

ТОП публикаций

1 ответ

 а также

file_put_contents ( "file", "data", LOCK_EX )аписи (что означает - aquire lock and write) file_get_contents ( "file", LOCK_EX )для чтения (что означает - замок Aquire, а затем читать) это исключение? поднять ошибку? блокировать до блокировки? ...

1 ответ

 в том, что он не даст компилятору оптимизировать, даже если это совершенно нормально.

ю, что volatile не обеспечивает атомарность для int, например, но делает ли это, если вы обращаетесь к одному байту? Семантика требует, чтобы записи и чтения всегда были из памяти, если я правильно помню. Или другими словами: процессоры читают и ...

1 ответ

потому что он объявлен как дефолт, а не объявлен и затем определен как дефолт. Таким образом, применим второй пункт [dcl.init] / 7, объект инициализируется нулями, после чего следует (не) вызов конструктора (по умолчанию), который ничего не делает.

ботай здесь я понимаю, что фактически ноль инициализируетstd::atomic<T> a{}, Я всегда так думал и практически использовал его доaэто, Прежде чем объяснить мое понимание этого, я хочу показать, что, по крайней мере, gcc и clang делают это на ...

1 ответ

 было бы ложным.

с Apple LLVM 9.1.0,is_lock_free() на 128-битных структурах вернули true. Чтобы завершитьstd::optional Поддержка, я затем обновился до MacPorts GCC 7.3. Во время моей первой попытки компиляции я столкнулся с этой печально известной ошибкой ...

1 ответ

TIdThreadSafeStringList и некоторые другие ...

тся ли «логические» переменные потокобезопасными для чтения и записи из любого потока? Я видел ссылки на некоторые группы новостей, чтобы сказать, что они есть. Доступны ли другие типы данных? (Перечислимые типы, короткие ...

1 ответ

 просто оставив это здесь для тех, кто хочет использовать __sync

//gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Atomic-Builtins.html [http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Atomic-Builtins.html] Я считаю, что следующий код увеличивает значение var атомарно. volatile int var = 0; __sync_fetch_and_add( &var, 1 )Я ...

1 ответ

Атомная замена файлов в Python

Каков рекомендуемый способ атомарной замены файла в Python? то есть, если сценарий Python прерывается, происходит сбой питания и т. д. Файлы не имеют высокой вероятности оказаться в несогласованном состоянии (наполовину записано на ...