程式 :由源代碼生成的可執行應用 QQ.app 進程 :一個正在運行的程式可以看作是一個進程,擁有獨立運行所需的全部資源 線程 :程式中獨立運行的代碼段 一個進程是由一個或多個線程組成。進程只負責資源的調度和分配,線程才是程式真正的執行單元,負責代碼的執行。 單線程 :每個正在運行的程式就是上面說的 ...
程式 :由源代碼生成的可執行應用 QQ.app 進程 :一個正在運行的程式可以看作是一個進程,擁有獨立運行所需的全部資源 線程 :程式中獨立運行的代碼段 一個進程是由一個或多個線程組成。進程只負責資源的調度和分配,線程才是程式真正的執行單元,負責代碼的執行。 單線程 :每個正在運行的程式就是上面說的進程,至少包含一個線程,這個線程叫主線程。主線程在程式啟動時被創建,用於執行main函數。那麼只有一個主線程的程式就稱作 單線程程式。在單線程程式中,主線程要負責執行程式的所有代碼(UI的展現和刷新、網路請求、本地存儲等等),這些代碼只能 順序執行 而無法 併發執行。 這樣就引出了多線程 多線程 :同理 擁有多個線程的程式就稱作多線程程式。iOS允許用戶自己根據需要開闢若幹新的線程,相對於主線程來說,這些線程叫子線程。不管是主線程還是子線程都是獨立的運行單元,各自的執行互不影響,因此能夠併發執行。 單線程和多線程的區別 單線程程式 :只有一個線程即主線程,代碼順序執行,容易出現代碼阻塞(頁面假死)。 多線程程式 :與多個線程,線程間獨立運行,能有效的避免代碼阻塞,並且提高程式的運行性能。 **註意:iOS中關於UI的添加和刷新必須在主線程中操作 iOS平臺下的多線程有以下4個實現種類 NSThread NSOprationQueue NSObject GCD