iOS學習 --多線程和GCD的理解

進程的概念:每個進程都是一個應用程序,都有獨立的內存空間,通常狀況下,一個應用存在一個進程,但也有多個進程的狀況(好比瀏覽器)
編程

同一個進程中的線程共享內存中的內存和資源。瀏覽器

多線程的概念:每個程序都有一個主線程,調用main函數啓動網絡

主線程的生命週期和應用程序是綁定的,程序退出時,主線程也就中止了多線程

多線程技術表示,使用多線程能夠提升CPU的使用率,防止主線稱堵塞。函數

任何有可能堵塞主線稱的任務不要放在主線稱執行(訪問網絡spa

注意:線程的使用不是無節制的,只有主線稱有直接修改UI的能力
線程


iOS三種多線程技術的優缺點:對象

1.NSThread:生命週期

 優勢:NSThread比其餘兩個輕量級,使用簡單進程

缺點:須要本身管理線程的生命週期、線程同步、加鎖、睡眠及喚醒等。線程同步對數據的加鎖有必定的系統開銷


2.NSOperation:

不須要關心線程管理,數據同步的事情,能夠把精力放在本身須要執行的操做上

NSOperation是面向對象的


3.GCD

Grand Central Dispatch 是由蘋果開發的一個多核編程的解決方案。iOS4.0+才能使用,是替代NSThread、NSOperation的高效和強大的技術

GCD是基於c語言的

相關文章
相關標籤/搜索