2010-10-31 14 views
10

Olası Çoğalt: Varsayılan olarak
Objective-C properties: atomic vs nonatomicNeden bir odada nonatomik kullanmamalıyım?

Objective-C tüm özellikler atom vardır. Eğer atomsuza ihtiyacım varsa onu bildirmeliyim. Ama acaba nanotomiyi neden kullanmalıyım? Uygulamalarım çok iş parçacıklı olmasa bile, atomik bunu yapmanın yolu gibi görünüyor. Atomik olmayan avantajları nelerdir?

+4

@KennyTM: Bağlantılı sorunuzun kopyası bu değil. Bu, atomik/atomik olmayan araçların nonatomik kullanmanızın gerekip gerekmediğini sormakla aynı şeyi sormaktı. – JeremyP

cevap

16

Kısa bir cevap performanstır. Özellikleri atomic olarak bildirirseniz, sentezlenen erişimciler, değerlerin tamamen alındığından ve ayarlandığından emin olmak için kilitleri kullanır. Buna ihtiyacınız yoksa, örneğin, uygulamanız tek iş parçacıklıysa, bu kilitler için bir avantaj elde etmeden bir performans cezası alıyorsunuz demektir.

+6

Ve bu nedenle, özelliklendirme olmadan nonatomik için özellikler, erken optimizasyon olarak sayılır. – JeremyP

+1

Ayrıca, bu uygulama için ortak uygulama performans için gerçekten önemli olabilir, ancak, daha kolay okunabilir bir anahtar kelime ücretsiz ... – Renetik

İlgili konular