IOS中的多線程和NSRunLoop概述

來源:互聯網
上載者:User

線程概述

如Hello World,運行列印完,它的生命週期便結束了;有些程式是一個圓,不斷迴圈,直到將它切斷,如作業系統,一直運行直到你關機。 

建立線程

 [myObj performSelectorInBackground:@selector(doSomething) withObject:nil]; 
  

多線程 

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

- ()setMaxConcurrentOperationCount:(NSInteger)count 

線程間通訊

  1.performSelect On The Thread


RunLoop


需要處理的事件分兩類,一種是輸入源,一種是定時器,輸入源傳遞非同步事件,通常訊息來自於其他線程或程式。定時源好理解就是那些需要定時執行的操作,傳遞同步事件,發生在特定時間或者重複的時間間隔。兩種源都使用程式的某一特定的處理常式來處理到達的事件。輸入源分三類:performSelector源,基於連接埠(Mach port)的源,以及自訂的源。編程的時候可以添加自己的源。RunLoop還有一個觀察者Observer的概念,可以往RunLoop中加入自己的觀察者以便監控著RunLoop的運行過程。

 

預設非主線程的RunLoop是沒有啟動並執行,需要為RunLoop添加至少一個事件來源,然後去run它。一般情況下我們是沒有必要去啟用線程的RunLoop的,除非你在一個單獨的線程中需要長久的檢測某個事件。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.