單線程、多線程的區別,單線程,多線程區別

來源:互聯網
上載者:User

單線程、多線程的區別,單線程,多線程區別

程式、進程、線程

程式:由原始碼產生的可執行應用。 (例如:QQ.app)

進程:一個正在啟動並執行程式可以看做一個進程,(例如:正在啟動並執行QQ警示一個勁曾),進程擁有獨立運行所需要的全部資源

線程:程式中獨立啟動並執行程式碼片段。(例如:接收QQ訊息的代碼)

一個進程是由一或多個線程組成,進程只負責資源的調度和分配,線程才是程式真正的執行單元,負責代碼的執行。

 

 

 單線程

每個正在啟動並執行程式(即進程),至少包括一個線程,這個線程叫主線程

主線程在程式啟動時被建立,用於執行main函數

只有一個主線程的程式,稱作單線程程式

主線程負責執行程式的所有代碼(UI展現以及重新整理,網路請求,本機存放區等等)。這些代碼只能順序執行,無法並發執行

 

多線程

擁有多個線程的程式,稱作多線程程式。

iOS允許使用者自己開闢新的線程,相對於主線程來講,這些線程,稱為子線程

可以根據需要開闢若干子線程

子線程和主線程都是獨立的運行單元,各自的執行互不影響,因此能夠並發執行

 

單線程、多線程的區別

單線程程式:只有一個線程,代碼順序執行,容易出現代碼阻塞(頁面假死)

多線程程式:有多個線程,線程間獨立運行,能有效地避免代碼阻塞,並且提高程式的運行效能

注意:iOS中關於UI的添加和重新整理必須在主線程中操作

 

 

iOS平台下得多線程

 

iOS多線程 實現種類

NSThread

NSOperationQueue

NSObject

GCD

 

NSThread

NSThread是一個輕量級的多線程,它有以下兩種建立方法:

注意:

在多線程方法中,需要添加自動釋放池

在應用程式開啟的時候,系統會自動為主線程建立一個自動釋放池

我們手動建立的子線程需要我們手動添加自動釋放池

 

相關文章

聯繫我們

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