iOS多執行緒 基礎

2021-07-05 01:05:02 字數 1582 閱讀 6400

thread

currentthread]);

}}];

[operation3 addexecutionblock:^

}];//設定操作依賴:一定要在新增之前進行設定

[operation3 adddependency:operation1];

[operation1 adddependency:operation2];

//建立操作佇列,把操作新增到佇列當中。任務新增的順序並不能決定執行順序,執行的順序取決於依賴。

//使用operation的目的就是讓開發人員不再關心執行緒

三。操作的監聽

1.可以監聽乙個操作的執行完畢。

2.如下:

//nsthread執行緒的相關操作

使用古老的方式建立執行緒:pthread_t

使用nsthread建立執行緒

1.建立執行緒

啟動執行緒

2.建立執行緒後自動啟動執行緒

3.隱式建立執行緒並啟動執行緒

主線程相關:獲得主線程,是否為主執行緒

獲取和設定執行緒的優先順序

獲得當前執行緒

獲取和設定執行緒的名字

執行緒暫停一段時間(執行緒阻塞)

退出執行緒(執行緒死亡,人死不能復生)

執行緒安全:

多執行緒的安全隱患:資源共享、

解決方案:

1.@synchronized(互斥鎖);

2.原子性和非原子性

oc在定義屬性時有nonatomic和atomic兩種選擇

atomic:原子屬性,為setter方法加鎖(預設就是atomic)。執行緒安全,需要消耗大量的資源

nonatomic:非原子屬性,不會為setter方法加鎖。非執行緒安全,適合記憶體小的移動裝置

但是,ios開發的建議

所有屬性都宣告為nonatomic

盡量避免多執行緒搶奪同一塊資源

盡量將加鎖、資源搶奪的業務邏輯交給伺服器端處理,減小移動客戶端的壓力

執行緒間的通訊:

1.執行緒間通訊:在1個程序中,執行緒往往不是孤立存在的,多個執行緒之間需要經常進行通訊

2.執行緒間通訊的體現

1個執行緒傳遞資料給另1個執行緒

在1個執行緒中執行完特定任務後,轉到另1個執行緒繼續執行任務

iOS 多執行緒(基礎篇)

如果要在1個執行緒中執行多個任務,那麼只能乙個乙個按順序執行這些任務。也就是說,在同乙個時間內,1個程序只能執行1個任務。1個程序中可以開啟多條執行緒,每條執行緒可以並行 同時 執行不同的任務。程序是車間,那麼執行緒就是車間工人。多執行緒技術可以提高程式的執行效率。同一時間內,cpu只能處理一條執行...

iOS多執行緒

iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...

iOS多執行緒

iphone 中的執行緒應用並不是無節制的,官方給出的資料顯示iphone os下的主線程的堆疊大小是1m,第二個執行緒開始都是512kb。並且該值不能通過編譯器開關或執行緒api函式來更改。只有主線程有直接修改ui的能力。一 nsoperation和nsoperationqueue 1 乙個繼承自...