多執行緒基礎(一)基礎中的基礎

2022-03-14 02:47:06 字數 1229 閱讀 1147

多執行緒基礎:

先上個以下關於程序、執行緒和任務的基本的概念的概括圖:

程序:系統中正在執行的乙個應用程式(一種狀態)。

每個程序之間是相互獨立的,每個程序在其受保護專用的記憶體空間內。

執行緒:乙個程序要想執行任務,必須要有執行緒(每個程序至少有一條執行緒)

執行緒的序列

乙個執行緒中的任務的執行是序列的

如果在乙個執行緒中執行多個任務,那麼只能乙個乙個按順序執行這些任務

同乙個時間內,乙個執行緒只能執行乙個任務

程序和執行緒的比較:

執行緒是cpu呼叫(執行任務)的最小單位

程序是cpu分配資源和排程的單位

乙個程式可以對應多個程序,乙個程序中可以有多個執行緒,但至少要乙個執行緒

同乙個程序內的執行緒共享程序的資源

乙個程序中可以開啟多條執行緒,每條執行緒可以並行(同時)執行不同的任務

多執行緒可以提高執行效率

開發中一般開3~5條執行緒即可,不要太多

多執行緒的優缺點:

優點能適當提高程式執行效率

能適當提高資源利用率(cpu、記憶體利用率)

缺點:建立執行緒是有開銷的,ios下主要成本包括:核心資料結構

如果開啟大量的執行緒,會降低程式的效能

執行緒越多,cpu的排程執行緒上的開銷就越大

(重難點)程式設計更加複雜:比如執行緒之間的通訊,多執行緒的資料共享

主線程乙個ios程式執行後,缺省會開啟1條執行緒,成為"主線程」或"ui執行緒"

作用:顯示/重新整理ui介面

處理ui事件

使用注意:

別把耗時的操作放在主線程中

耗時操作會卡住主線程,嚴重影響ui的流暢度,給使用者一中「卡」的壞體驗

驗證按鈕的點選事件是在主線程中執行的

//模擬耗時操作

2for(nsinteger i = 0;i<100000;i++)

3不要將耗時操作放在主線程中,凡是跟ui相關的操作都是放在主線中處理

耗時操作應該放在子執行緒(後台執行緒,非主線程)

多執行緒基礎 一

多執行緒基礎篇 一 程序與執行緒的區別 程序 程序是作業系統結構的基礎,是系統進行資源分配和排程的基礎 執行緒 執行緒是作業系統排程的最小單元,乙個程序中可以建立多個執行緒。二 執行緒的狀態 new 新建狀態。runnable 可執行狀態。一旦呼叫start方法,執行緒就處於runnable狀態,乙...

多執行緒基礎(一)

多執行緒實現的第一種方式 自定義執行緒類 mythread類 第一步 書寫乙個類繼承thread public class mythread extends thread testmythread類 public class testmythread 多執行緒啟動的第二種方式 runnable實現類...

多執行緒基礎(一)

多執行緒基礎 一 程序是一塊包含了某些資源的記憶體區域,作業系統利用程序把它的工作劃分為 些功能單元。執行緒程序中包含的乙個或多個執行單元稱之為執行緒。乙個執行緒是程序的乙個順序執行流。同類的多個執行緒共享一塊記憶體空間和一組系統資源,執行緒本身有乙個工程式執行時的堆疊。程序和執行緒的區別 執行緒是...