標籤:應用程式 預設 線程 操作 技術 單元 順序 資源分派 實現
二、線程與進程
1、進程
進程(Process)是電腦中的程式關於某資料集合上的一次運行活動,是系統進行資源分派和調度的基本單位,是作業系統結構的基礎,每一個進程都有自己獨立的虛擬記憶體空間。杏彩源碼搭建QQ:2152876294 網址diguaym.com
簡單來說,進程是指在系統中正在啟動並執行一個應用程式,每一個程式都是一個進程,並且進程之間是獨立的,每個進程均運行在其專用且受保護的記憶體空間內。
2、線程
線程,是程式執行流的最小單元線程是程式中一個單一的順序控制流程程。是進程內一個相對獨立的、可調度的執行單元,是系統獨立調度和指派CPU的基本單位指運行中的程式的調度單位。
簡單來說,1個進程要想執行任務,必須得有線程。
線程中任務的執行是串列的,要在1個線程中執行多個任務,那麼只能一個一個地按順序執行這些任務,也就是說,在同一時間內,1個線程只能執行1個任務,由此可以理解線程是進程中的1條執行路徑。
一個進程中至少包含一條線程,即主線程,建立線程的目的就是為了開啟一條新的執行路徑,運行指定的代碼,與主線程中的代碼實現同時運行。
3、多線程
多線程(multithreading),是指從軟體或者硬體上實現多個線程並發執行的技術。具有多線程能力的電腦因有硬體支援而能夠在同一時間執行多於一個線程,進而提升整體處理效能。
原理:
同一時間,CPU只能處理1條線程,只有1條線程在工作(執行)
多線程並發(同時)執行,其實是CPU快速地在多條線程之間調度(切換)
如果CPU調度線程的時間足夠快,就造成了多線程並發執行的假象
注意:多線程並發,並不是cpu在同一時刻同時執行多個任務,只是CPU調度足夠快,造成的假象。
優點:
能適當提高程式的執行效率
能適當提高資源使用率(CPU、記憶體利用率)
缺點:
開啟線程需要佔用一定的記憶體空間(預設情況下,主線程佔用1M,子線程佔用512KB),如果開啟大量的線程,會佔用大量的記憶體空間,降低程式的效能
線程越多,CPU在調度線程上的開銷就越大
杏彩源碼搭建與iOS多線程詳解