1 原子屬性和非原子屬性

2021-07-05 00:20:59 字數 429 閱讀 1748

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等指令產生臨界...