1.原子屬性和非原子屬性:
oc在定義屬性時有 atomic 和 nonatomic 兩種選擇!
atomic(預設屬性): 原子屬性,自動為setter 方法加鎖!執行緒安全的,需要消耗大量的 cpu 資源!
nonatomic: 非原子屬性,不會為 setter 方法加鎖!非執行緒安全的,適合記憶體小的移動裝置!
我們在宣告屬性的時候該如何選擇?
為什麼要在主線程更新ui?
因為uikit 框架都不是執行緒安全的!為了得到更好的使用者體驗,uikit框架犧牲了執行緒安全;
所以我們要在主線程更新ui;
2.ios 開發建議:
<1> 所有屬性都宣告為 nonatomic!
<2> 盡量避免多執行緒搶奪同一塊資源!
<3> 盡量將加鎖,資源搶奪等業務邏輯交給伺服器端處理,減小移動客戶端的壓力!
原子和非原子屬性
一 原子和非原子屬性 1.oc在定義屬性時有nonatomic和atomic兩種選擇 atomic 原子屬性,為setter方法加鎖 預設就是atomic nonatomic 非原子屬性,不會為setter方法加鎖。2.nonatomic和atomic的對比 atomic 執行緒安全,需要消耗大量的...
Objective C 原子屬性
objective c 在宣告乙個屬性的時候,想必大家都是不用經過大腦思考就會寫 property nonatomic,我們都知道屬性可以是 nonatomic 也可以使 atomic 的,但是好像幾乎所有屬性在宣告的時候 nonatomic,atomic 的屬性幾乎沒出現過。atomic 修飾符彷...
原子性atomic與非原子性natomic
原子操作是不可分割的操作,在原子操作執行完畢之前,其不會被任何其它任務或事件中斷。在單處理器系統 uniprocessor 中,能夠在單條指令中完成的操作都可以認為是 原子操作 因為中斷只能發生於指令之間。某些cpu指令系統中引入了test and set test and clear等指令產生臨界...