一、前言
- OC在定義屬性時有nonatomic和atomic兩種選擇
- atomic:原子屬性,為setter方法加鎖(默認(rèn)就是atomic)
- nonatomic:非原子屬性,不會為setter方法加鎖
二、原子和非原子屬性的選擇
1、nonatomic和atomic對比
- atomic:線程安全,需要消耗大量的資源
- nonatomic:非線程安全,適合內(nèi)存小的移動設(shè)備
2、選擇 —> iOS開發(fā)的建議
- 所有屬性都聲明為nonatomic
- 因?yàn)閚onatomic是線程不安全的,所以我們要盡量避免多線程搶奪同一塊資源
- 盡量將加鎖、資源搶奪的業(yè)務(wù)邏輯交給服務(wù)器端處理,減小移動客戶端的壓力