iOS多線程介紹_java

來源:互聯網
上載者:User

一、前言部分

最近在面試,重新溫習了一遍多線程,希望加深一遍對於多線程的理解。

1、什麼是進程?

1).要瞭解線程我們必須先瞭解進程,通俗來講進程就是在系統中啟動並執行一個應用程式。

2).每個線程之間是獨立存在的,分別運行在其專用的且受保護的記憶體空間中。

3).比如開啟QQ或Xcode系統會分別開啟兩個進程 如圖:

4)、我們可以通過"活動監視器"查看Mac系統中所開啟的進程。

2、什麼是線程?

1).一個進程要想執行任務必須得有線程,即一個進程至少要有一個線程。

2).線程是進程的基本執行單元,一個進程(程式)的所有任務都是線上程中執行的。

3).比如使用酷狗播放音樂、使用迅雷下載電影都需要線上程中運行 如圖:

3、什麼是線程的串列?

1).一個線程中任務是串列執行的(順序執行)的,也就是說一個線程同一時間內只能執行一個任務。

2).串列執行圖解,比如一個線程下載3個檔案(檔案A、B、C)

4、什麼是多線程?

1).一個進程中可以開啟多個線程,每個線程可以並發(同時)執行不同的任務。

2).類似關係列舉:進程---->車間;線程---->車間工人

3).多線程圖解,比如同時開啟3個線程分別下載3個檔案(檔案A、B、C)

5、多線程原理

1).同一時間CPU只能執行一個線程,只有一個線程在工作(執行)。

2).多線程並發(同時)執行,其實是CPU快速的在多個線程之間調度(切換)。

3).如果CPU調度線程的速度夠快,就會造成多線程並發執行的假象。

4).多線程的缺點:

1、每個線程都會佔用一定的記憶體空間(預設情況下:主線程佔用1MB,子線程佔用512KB),

如果開啟線程過多會佔用大量的記憶體空間因而造成程式效能降低。

2、線程越多CPU調度線程上的開銷就越大(類似工廠工人越多,工廠開銷也越大)。

3、使程式設計更複雜:比如多線程的資料通訊,多線程之間的資料共用。

5).多線程的優點:

1、能適當提高程式的執行效率。

2、能適當提高資源使用率(CPU、記憶體的利用率)

6、什麼是主線程?

1).一個iOS程式開啟後預設會開啟一個線程,這個線程被稱為"主線程"或"UI線程"。

2).主線程的主要作用:

1、顯示/重新整理UI介面

2、處理UI事件(比如點擊事件、滾動事件、拖拽事件等)

3).主線程注意點:

1、別將耗時的操作放在主線程中,耗時操作放在主線程中會造成程式卡頓的問題。

7、耗時操作Demo示範

1)、直接在主線程中啟動並執行Demo

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{//擷取當前執行方法和當前線程//number== 主線程//number!= 其他線程、子線程、次線程NSLog(@"%s----%@",__func__,[NSThread currentThread]);//直接在主線程中運行 造成UI操作卡頓[self longTimeOperation];}#pragma mark-耗時操作-(void)longTimeOperation{for (int i=; i<; i++) {NSLog(@"%d",i);}}

2)、在子線程中啟動並執行Demo

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{//擷取當前執行方法和當前線程//number== 主線程//number!= 其他線程、子線程、次線程NSLog(@"%s----%@",__func__,[NSThread currentThread]);//將耗時操作放在子線程中執行,不影響UI的操作[self performSelectorInBackground:@selector(longTimeOperation) withObject:nil];}#pragma mark-耗時操作-(void)longTimeOperation{for (int i=; i<; i++) {NSLog(@"%d",i);}}

以上內容是小編給大家介紹的ios多線程知識,希望對大家有所協助!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.