iOS 開發 多執行緒詳解之執行緒生命週期控制

2021-07-24 20:38:22 字數 1118 閱讀 1831

新建 --> 就緒(在可排程執行緒池中,等待被cpu的排程執行) --> 執行

執行 --> cpu切換到其他的執行緒 --> 就緒

執行 --> 呼叫的sleep方法 --> 阻塞 --> sleep的時間到了 --> 就緒

執行 --> 任務執行完成 --> 死亡

執行 --> exit --> 死亡

記憶體中建立了乙個執行緒物件

nsthread *thread = [[nsthread alloc] initwithtarget:self selector:@selector(threaddemo) object:nil];
將執行緒放進可排程執行緒池,等待被cpu排程

[thread start];
cpu負責排程」可排程執行緒池」中的處於」就緒狀態」的執行緒

執行緒執行結束之前,狀態可能會在」就緒」和」執行」之間來回的切換

「就緒」和」執行」之間的狀態切換由cpu來完成,程式設計師無法干涉

正在執行的執行緒,當滿足某個條件時,可以用休眠或者鎖來阻塞執行緒的執行

1.sleepfortimeinterval:休眠指定時長

[nsthread sleepfortimeinterval:1.0];

2.sleepuntildate:休眠到指定日期

[nsthread sleepuntildate:[nsdate datewithtimeintervalsincenow:1.0]];

3.互斥鎖

@synchronized(self)

**演練

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

- (void)threaddemo

//3. 滿足某一條件執行緒死亡

if (4==i)

}nslog(@"迴圈結束");

}

關於exit的結

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

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

iOS 開發 多執行緒詳解之執行緒安全 資源共享

先定義共享資源 inte ce viewcontroller 總票數 共享的資源 property nonatomic,assign int tickets end 2.初始化餘票數共享資源 void viewdidload 3.賣票邏輯實現 void saletickets else 4.單執行緒...

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

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