iOS —— 多線程基礎,ios多線程基礎

來源:互聯網
上載者:User

iOS —— 多線程基礎,ios多線程基礎
一、進程

進程可以理解為一個應用程式;比如說開啟 QQ,那麼在記憶體中就會為 QQ 分配一塊進程;開啟,那麼在記憶體中就會為 分配一塊進程;並且進程之間是相互獨立的

 

 

二、線程1. 基本概念

線程是進程的基本單元(可以理解為一個進程中的各個操作);比如說 QQ,其中的很多操作,比如說傳送檔案,下載圖片等,這些都是子線程

例如 xcode 進程中的線程

 

一個進程最少有一個線程,稱為主線程

進程的各個操作都是在主線程或子線程中完成的

 

2. 串列、並行

串列和並行都是針對線程而言的

串列 
串列是指一個線程中的任務一個一個執行,即上一個任務執行完,下一個任務才能繼續;即在同一時間內,只能執行一個任務

 

 

可以看出,串列的耗時是所有任務的總和

並行 
並行是指一個線程中的任務可以同時進行;即在同一時間內可以進行多個任務

 

3. 多線程1)概念

因為每個進程最少都一個線程(主線程),在主線程中還可以建立多個子線程,並且主線程和子線程中的任務是互不干涉的;

也就是說,在同一時間內,可以同時進行主線程和子線程中的任務

 

2)原理a. 單核作業系統 在單核作業系統上,因為在同一時間內只能運行一個任務,那如何?多線程呢??

系統會為每一個線程指定一個確定的執行時間,當然這個時間很短,然後在各個線程之間做切換(調度),以此來達到多線程

 

可以看出,單核作業系統的多線程實際上還是串列的,只不過在時間很短的情況下進行線程之間的切換,所以看起來就好像是多線程了

 

b. 多核作業系統 
在多核作業系統上,在同一時間內可以運行多個任務,所以很容易實現多線程,並且是真正的多線程

 

 

 

3)優缺點a. 優點   能提高 CPU 的利用率和執行效率b. 缺點   消耗記憶體(建立一個新的線程會消耗一定的記憶體)   如果開啟的線程過多,那麼 CPU 的開銷就越大

 

4)iOS 的多線程

iOS 應用在啟動後,只會開啟一條線程(主線程,也稱 UI 線程)

通常,在 主線程 中做一些不耗時的工作;例如 重新整理 UI 介面、監控事件等

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.