iOS 多線程開發

來源:互聯網
上載者:User

標籤:

   本文主要是我對多線程的總結,當是給自己的個複習,也可以給別人一些參考。

 

  還是從簡單開始,先介紹一些概念性的東西,雖然簡單,但是理解的深刻程度決定了是否能正解使用多線程的,還有用得有多好。

  線程:線程是程式中一個單一的順序控制流程程,是線程中的一個實體,一個標準的線程由線程ID,當前指令指標(PC),寄存器集合和堆棧組成。

它有以下屬性:

  1、輕型實體 。2、獨立調度和指派的基本單位。3、可並發執行。4、共用進程資源。

 

接下來就是在iOS中能夠使用的四種多線程編程方式:

  (一)pthread

  這裡並不會很詳細的去講解它,百度上是這麼說的:

  POSIX線程(POSIX threads),簡稱Pthreads,是線程的POSIX標準。該標準定義了建立和操縱線程的一整套API。在類Unix作業系統(Unix、Linux、Mac OS X等)中,都使用Pthreads作為作業系統的線程。Windows作業系統也有其移植版pthreads-win32。

   iOS開發中很少直接使用它。要使用它就得使用pthread.h中的一系列C介面,使用那些底層介面去建立,調度,管理線程,相對複雜,並且要考慮的問題會很多。

  (二)NSThread

 它是蘋果對pthread的進一步封裝,並且是物件導向的。封裝後我們面對的是線程對象,而且它的介面也更好理解,使用起來更加直觀和方便。

   (三)Grand Central Dispatch(GCD).

 它是蘋果開發的一個多核編程的解決方案。使用GCD,它會自動管理線程的生命週期(建立線程、調度任務、銷毀線程),完全不需要我們管理,我們關注重心只要在自己的任務,並把任務投入到相應的隊列。GCD使用的也是 c語言,結合使用了 Block,使得使用起來更加方便,而且靈活。

(四)NSOperation

  NSOperation在iOS 4.x以後也是基本CGD封裝的,它是CGD物件導向的封裝,並且提供有用且安全執行緒的建立狀態,優先順序,依賴和取消等操作。

 

iOS 多線程開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.