2009-04-26 6 views
1

Y a-t-il une bonne règle pour savoir quand les propriétés non atomiques devraient être utilisées dans Objective-C (sur le bureau ou sur la plate-forme iPhone), par opposition aux propriétés atomiques par défaut? Je comprends la différence - l'atomicité garantit une valeur entière au détriment de la performance - mais la plupart des exemples utilisent des propriétés non atomiques (et ne sont pas instables), donc il y a évidemment des circonstances dans lesquelles l'atomicité est requise. Est-ce que n'importe qui peut me fournir une ligne directrice simple pour quand je devrais employer des propriétés atomiques et quand je devrais favoriser les nonatomic?Règle de base pour l'atomicité @property?

Répondre

1

Vous devriez privilégier nonatomic autant que possible. En général, cela signifie que les propriétés qui seront définies/accédées à partir d'un seul thread ou propriétés dont l'accès est protégé par une synchronisation de niveau supérieur d'une certaine sorte. Il est important de noter que l'accès aux propriétés atomic ne garantit pas la sécurité des threads. En d'autres termes, les algorithmes qui dépendent des valeurs des propriétés atomic doivent eux-mêmes être thread-safe pour que l'ensemble du système soit thread-safe. Dans cet esprit, il est souvent possible de faire les propriétés nonatomic tout en conservant la sécurité des threads du système.

Questions connexes