進程的概念:每個進程都是一個應用程序,都有獨立的內存空間,通常狀況下,一個應用存在一個進程,但也有多個進程的狀況(好比瀏覽器)
編程
同一個進程中的線程共享內存中的內存和資源。瀏覽器
多線程的概念:每個程序都有一個主線程,調用main函數啓動網絡
主線程的生命週期和應用程序是綁定的,程序退出時,主線程也就中止了多線程
多線程技術表示,使用多線程能夠提升CPU的使用率,防止主線稱堵塞。函數
任何有可能堵塞主線稱的任務不要放在主線稱執行(訪問網絡)spa
注意:線程的使用不是無節制的,只有主線稱有直接修改UI的能力
線程
iOS三種多線程技術的優缺點:對象
1.NSThread:生命週期
優勢:NSThread比其餘兩個輕量級,使用簡單進程
缺點:須要本身管理線程的生命週期、線程同步、加鎖、睡眠及喚醒等。線程同步對數據的加鎖有必定的系統開銷
2.NSOperation:
不須要關心線程管理,數據同步的事情,能夠把精力放在本身須要執行的操做上
NSOperation是面向對象的
3.GCD
Grand Central Dispatch 是由蘋果開發的一個多核編程的解決方案。iOS4.0+才能使用,是替代NSThread、NSOperation的高效和強大的技術
GCD是基於c語言的