你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> iOS 為什麼app都是異步編程

iOS 為什麼app都是異步編程

編輯:IOS技巧綜合
[摘要]本文是對iOS 為什麼app都是異步編程的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

iOS 為什麼app都是異步編程


對本文題目首先需要了解一下什麼是異步編程,異步編程即多線程編程.

多線程是一個比較輕量級的方法來實現單個應用程序內多個代碼執行路徑。

在具體理解多線程之前先看一個都理解的例子:
在系統級別內,程序並排執行,程序分配到每個程序的執行時間是基於該程序的所需時間和其他程序的所需時間來決定的。
例子中的程序我們就可以理解為線程,系統則可以理解為進程,在每個進程內部,存在一個或者多個執行線程,它同時或在一個幾乎同時發生的方式裡執行不同的任務,多個線程同時執行也即是我們所謂的多線程.
有些程序是一條直線,起點到終點——如簡單的hello world,運行打印完,它的生命周期便結束了,像是昙花一現。有些程序是一個圓,不斷循環直到將它切斷——如操作系統,一直運行直到你關機。通常那個"圓"是app中的主線程."直線"是我們為了一些操作而新建的線程,這些操作通常是一些耗時的操作,例如下載圖片.下載圖片的速度是和網速有關系的,當網速慢的時候,如果我們將下載與現實操作都放在"圓"內,會導致"圓"的循環在某一個點上停止,從而造成卡頓現象.而"直線"確恰恰相,"直線"與"圓"的執行是異步的,因此不會造成圓的卡頓.

那麼下面詳細理解一下"圓".
Mac和iOS中的程序啟動,創建好一個進程的同時,一個線程便開始運作,這個線程叫做主線程。主線成在程序中的位置和其他線程不同,它是其他線程最終的父線程,且所有的界面的顯示操作即AppKit或UIKit的操作必須在主線程進行。

說了這麼多,在下面就說一下使用多線程應該注意什麼.
正如系統中每一個進程都有自己獨立的虛擬內存空間,同一個進程中的多個線程則公用進程的內存空間。
每創建一個新的進成,都需要一些內存(如每個線程有自己的stack空間)和消耗一定的CPU時間。
當多個進成對同一個資源出現爭奪的時候需要注意線程安全問題創建線程
iPhone中的線程應用並不是無節制的,官方給出的資料顯示,iPhone OS下的主線程的堆棧大小是1M,第二個線程開始就是512KB,並且該值不能通過編譯器開關或線程API函數來更改,只有主線程有直接修改UI的能力.因此我們實際編程的時候應該適當控制線程的數量以節約內存空間.

簡單總結一下
app采用異步編程是為了提高界面的流暢度以及用戶體驗,因此我們務必要把耗時的操作放到別的線程中去執行,千萬不要阻塞主線程,就這麼簡單.

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved