IOS多執行緒開發 NSThread原理及演示

2021-06-28 05:55:58 字數 1234 閱讀 6557

// 建立執行緒方式1

- (void

)test1

// 建立執行緒方式2

- (void

)test2

// 建立執行緒方式3

- (void

)test3

#pragma mark - 執行緒的屬性

- (void

)test4

//  nsthread執行緒的狀態

- (void

)run

// 一旦達到某乙個條件,就強制終止執行緒的執行

if(i ==

15)

nslog

(@"%@--- %d"

, [nsthread

currentthread

], i);

}nslog

(@"執行緒結束");}

// 把資料傳到主線程,在主線程更新ui 1

.[self

performselectoronmainthread

:@selector

(downloadfinish:)

withobject

:image

waituntildone:no

]; 2.

[self

performselector:

@selector

(downloadfinish:) onthread:[nsthread mainthread] withobject:image waituntildone:

no];

3.[self.iconview performselectoronmainthread:@selector(setimage:) withobject:image waituntildone:yes];

// nonatomic 非原子屬性

// atomic 原子屬性--預設屬性

// 原子屬性就是針對多執行緒設計的。 原子屬性實現 單(執行緒)寫 多(執行緒)讀

// 因為寫的安全級別要求更高。 讀的要求低一些,可以多讀幾次來保證資料的正確性

// 原子屬性內部使用的 自旋鎖

// 自旋鎖和互斥鎖

// 共同點: 都可以鎖定一段**。 同一時間, 只有執行緒能夠執行這段鎖定的**

// 區別:互斥鎖,在鎖定的時候,其他執行緒會睡眠,等待條件滿足,再喚醒

// 自旋鎖,在鎖定的時候, 其他的執行緒會做死迴圈,一直等待這條件滿足,一旦條件滿足,立馬去執行,少了乙個喚醒過程

iOS開發多執行緒 執行緒安全

資源共享 1塊資源可能會被多個執行緒共享,也就是多個執行緒可能會訪問同一塊資源 比如多個執行緒訪問同乙個物件 同乙個變數 同乙個檔案 當多個執行緒訪問同一塊資源時,很容易引發資料錯亂和資料安全問題 示例一 示例二 問題 import viewcontroller.h inte ce viewcont...

iOS開發 多執行緒篇 多執行緒介紹

一 程序和執行緒 1 什麼是程序 程序是指在系統中正在執行的乙個應用程式 每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內 比如同時開啟迅雷 xcode,系統就會分別啟動2個程序 通過 活動監視器 可以檢視mac系統中所開啟的程序 3 執行緒的序列 1個執行緒中任務的執行是序列的 ...

iOS開發 多執行緒簡介

多執行緒從概念上理解是指從軟體或者硬體上實現多個執行緒併發執行的技術,簡單點理解就是同一時間可以執行多個事情 比如說一邊聽歌一邊碼 聽歌是乙個執行緒,碼 是乙個執行緒,如果是單核cpu的話,上面兩個動作其實可以確切的理解為併發,也就是偽並行,只是兩者相差的時間太快沒有察覺。電腦現在一般都是雙核的或者...