2010-10-31 72 views
10

可能重複:
Objective-C properties: atomic vs nonatomic爲什麼我應該在物業中使用非原子?

默認情況下,在Objective-C的所有屬性都是原子。如果我需要非原子,我必須申報。但我想知道爲什麼我應該使用非原子?即使我的應用程序不是多線程的,原子似乎也是如此。非原子的優點是什麼?

+4

@KennyTM:這不是你的鏈接問題的重複。那是在問什麼原子/非原子的方法與詢問你是否應該使用非原子不一樣。 – JeremyP 2010-10-31 23:11:53

回答

16

簡短的答案就是性能。如果您將屬性聲明爲atomic,則合成的訪問器將使用鎖定來確保完全檢索和設置值。如果你不需要這個,例如你的應用程序是單線程的,那麼你就會對這些鎖造成性能損失而沒有獲得好處。

+6

因此,將屬性設置爲非原子而不進行分析將被視爲過早優化。 – JeremyP 2010-10-31 23:12:50

+1

我也intrested,如果這可以真正意義上的性能在常見的應用程序使用此屬性,沒有nonatomic它只是更具可讀性,一個未使用的關鍵字免費... – Renetik 2012-10-25 08:46:20

相關問題