定義:
網絡多線程(英語:multithreading),是指從軟件或者硬件上實現多個線程併發執行的技術。具備多線程能力的計多線程
算機因有硬件支持而可以在同一時間執行多於一個線程,進而提高總體處理性能。併發
在一個程序中,這些獨立運行的程序片斷叫作「線程」(Thread).函數
2. 線程和進程:性能
每一個在系統上運行的程序都是一個進程。每一個進程包括一到多個線程。進程也多是整個程序或者是部分程序的動態執行。線程是一組指令的集合,或者是程序的特殊段,它能夠在程序裏獨立執行,也能夠理解爲代碼運行的上下文,因此線程spa
基本上輕量的進程,它負責單個程序裏執行多任務,一般有操做系統負責多個線程的調度。操作系統
線程和進程的區別是:子進程和父進程喲不一樣的代碼和數據空間,而多個線程則共享數據空間,每一個線程有本身的執行線程
堆棧 和程序計數器爲其執行上下文,多線程主要是爲了節約CPU時間 進程
3. 多線程的優缺點:內存
優勢:
《1 使用多線程能夠把佔據時間長的程序中的任務放在後臺去處理。
《2 用戶界面能夠更加吸引人,好比用戶在點擊了一個按鈕去觸發某些時間的處理,能夠彈出一個進度條來顯
示處理的進度。
《3 程序的運行速度可能加快。
《4 在一些等待的任務上實現如用戶的輸入,文件讀寫和網絡收發數據,線程就比較有用。
缺點:
《1 若是有大量的線程,會影響性能,由於操做系統須要在它們之間切換。
《2 更多的線程則須要更多的內存空間
《3 線程可能給程序帶來更多的bug
《4 線程終止須要考慮其對程序運行的影響
《5 一般塊模型數據是在多個線程間共享的,須要防止線程死鎖狀況的發生。
iPhone中的線程應用並非無節制的,官方給出的資料顯示,iPhone OS下的主線程的堆棧大小是1M,第二個線程開始就是512KB,而且該值不能經過編譯器開關或線程API函數來更改,只有主線程有直接修改UI的能力