iOS之多線程簡介

  1. 定義:
    網絡

    多線程(英語:multithreading),是指從軟件或者硬件上實現多個線程併發執行的技術。具備多線程能力的計多線程

算機因有硬件支持而可以在同一時間執行多於一個線程,進而提高總體處理性能。併發

      在一個程序中,這些獨立運行的程序片斷叫作「線程」(Thread).函數

2. 線程和進程性能

     每一個在系統上運行的程序都是一個進程。每一個進程包括一到多個線程。進程也多是整個程序或者是部分程序的動態執行。線程是一組指令的集合,或者是程序的特殊段,它能夠在程序裏獨立執行,也能夠理解爲代碼運行的上下文,因此線程spa

基本上輕量的進程,它負責單個程序裏執行多任務,一般有操做系統負責多個線程的調度。操作系統

   線程和進程的區別是:子進程和父進程喲不一樣的代碼和數據空間,而多個線程則共享數據空間,每一個線程有本身的執行線程

堆棧 和程序計數器爲其執行上下文,多線程主要是爲了節約CPU時間    進程

3. 多線程的優缺點:內存

    優勢:

   《1 使用多線程能夠把佔據時間長的程序中的任務放在後臺去處理。

    《2 用戶界面能夠更加吸引人,好比用戶在點擊了一個按鈕去觸發某些時間的處理,能夠彈出一個進度條來顯

示處理的進度。

    《3 程序的運行速度可能加快。

    《4 在一些等待的任務上實現如用戶的輸入,文件讀寫和網絡收發數據,線程就比較有用。

     缺點:

    《1 若是有大量的線程,會影響性能,由於操做系統須要在它們之間切換。

    《2 更多的線程則須要更多的內存空間

    《3 線程可能給程序帶來更多的bug

    《4 線程終止須要考慮其對程序運行的影響

    《5 一般塊模型數據是在多個線程間共享的,須要防止線程死鎖狀況的發生。

       iPhone中的線程應用並非無節制的,官方給出的資料顯示,iPhone OS下的主線程的堆棧大小是1M,第二個線程開始就是512KB,而且該值不能經過編譯器開關或線程API函數來更改,只有主線程有直接修改UI的能力   

相關文章
相關標籤/搜索