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 乙個繼承自...