在學習多線程之前需要瞭解什麼是進程? 進程是指在系統中正在運行的一個應用程式 每個進程之間是獨立的,每個進程均運行在其專用且受保護的記憶體空間內 可以通過“活動監視器”查看Mac中所開啟的進程 下一個問題什麼是線程? 一個進程想要執行任務,必須得有線程(每一個進程只收要有一個主線程) 一個進程中的所有 ...
在學習多線程之前需要瞭解什麼是進程?
進程是指在系統中正在運行的一個應用程式
每個進程之間是獨立的,每個進程均運行在其專用且受保護的記憶體空間內
可以通過“活動監視器”查看Mac中所開啟的進程
下一個問題什麼是線程?
一個進程想要執行任務,必須得有線程(每一個進程只收要有一個主線程)
一個進程中的所有任務都線上程中執行
線程的串列
1.一個線程中任務的執行時串列的
2.如果要在一個線程中執行多個任務,那麼只能一個一個地按順序執行
那麼問題又來了什麼叫多線程呢?
1.一個進程中可以開多條線程,每條線程可以並行執行不同的任務
2.多線程技術可以提高程式的執行效率
如圖:
多線程的原理
1.同一時間,CPU只能處理1條線程,只有1條線程在工作
2.多線程的併發執行,其實就是CPU在快速的進行切換
3.因為CPU切換非常快,就導致了多線程(其實是假象)
多線程的優缺點
優點:
1.能提高程式的執行效率
2.能適當提高資源利用率
缺點:
1.創建線程是有開銷的,iOS下創建線程大約需要90毫秒的創建時間
2.如果開啟大量的線程,會降低程式的性能
3.會使程式設計更加複雜