2010-10-31 6 views
10

Duplicar posible:
Objective-C properties: atomic vs nonatomic¿Por qué debería usar alguna vez el nonatomic en una propiedad?

Por defecto todas las propiedades en Objective-C son atómica. Si necesito algo no atómico, debo declararlo. Pero me pregunto por qué debería usar alguna vez no atómico? Incluso si mis aplicaciones no tienen múltiples hilos, atomic parece ser la manera de hacerlo. ¿Cuáles son las ventajas de no atómico?

+4

@KennyTM: Esto no es un duplicado de su pregunta vinculada. Eso fue preguntar qué significa atómico/no atómico, lo cual no es lo mismo que preguntar si alguna vez debe usar algo no atómico. – JeremyP

Respuesta

16

Una respuesta corta es el rendimiento. Si declara propiedades como atomic, los descriptores de acceso sintetizados utilizarán bloqueos para garantizar que los valores se recuperan y configuran por completo. Si no necesita esto, por ejemplo, si su aplicación es de un solo hilo, incurrirá en una penalización de rendimiento por esos bloqueos sin obtener un beneficio.

+6

Y, por lo tanto, el establecimiento de propiedades no atómicas sin un perfil cuenta como una optimización prematura. – JeremyP

+1

También me interesa si esto puede ser realmente significativo para el rendimiento en una aplicación común para usar esta propiedad, sin ser menos atómica es simplemente más legible, una palabra clave libre de usar ... – Renetik

Cuestiones relacionadas