屬性中的修飾符:
nonatomic非原子屬性:
atomic:原子屬性:
原子屬性(線程安全),針對多線程設計的,默認值。
保證同一時間只有一個線程能夠寫入(但是同一時間多個線程都可以取值)atomic本身就是一把鎖(自旋鎖)
單寫多讀:單個線程寫入,多個線程可以讀取。
//注意:線程鎖所得是代碼塊,不是其他。是不能訪問對應的代碼塊。
nonatomic和atomic的區別:
atomic:線程安全,乣消耗大量的資源。
nonatomic:線程不安全,適合內存小的移動設備。
iOS開發的建議:
所有屬性都聲明為nonatomic
盡量避免多線程搶奪同一資源。
盡量將加鎖、資源搶奪的業務邏輯交給服務器端處理,減小移動客戶端的壓力。
屬性原子性的原理
注釋:原子屬性只能保證只讀的時候不出問題,但是他不能保證同時讀寫的時候不出問題。