Практическое правило для @property Atomicity? - PullRequest
1 голос
/ 27 апреля 2009

Есть ли хорошее эмпирическое правило, когда в Objective-C следует использовать неатомарные свойства (на рабочем столе или на платформе iPhone), в отличие от атомарных свойств по умолчанию? Я понимаю разницу - атомарность гарантирует полную стоимость за счет производительности - но в большинстве примеров, которые я вижу, используются неатомарные свойства (и они не являются нестабильными), поэтому, очевидно, существуют обстоятельства, при которых атомарность требуется, и обстоятельства, при которых это не так.

Может ли кто-нибудь дать мне простое руководство относительно того, когда мне следует использовать атомарные свойства и когда я должен отдавать предпочтение неатомарным?

1 Ответ

1 голос
/ 27 апреля 2009

Вы должны отдавать предпочтение nonatomic, когда это возможно. В общем, это означает, что свойства будут установлены / доступны только из одного потока или свойств, доступ к которым защищен какой-либо синхронизацией более высокого уровня. Важно отметить, что доступ к свойству atomic не гарантирует безопасность потоков. Другими словами, алгоритмы, которые зависят от значений свойств atomic, сами должны быть поточно-ориентированными, чтобы вся система была поточно-ориентированной. Имея это в виду, часто можно задать свойства nonatomic, сохраняя при этом безопасность потоков в системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...