欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

iOS開發(fā)培訓(xùn)之操作隊(duì)列與分發(fā)隊(duì)列的對比

2016-01-15 13:08:36 1118瀏覽

        為了減輕開發(fā)者的工作負(fù)擔(dān),蘋果公司打造了兩種關(guān)鍵的并發(fā)技術(shù),直接植入了iOS和Mac OS X之中,這就是操作(operation)隊(duì)列和分發(fā)(dispatch)隊(duì)列。

iOS開發(fā)培訓(xùn)之操作隊(duì)列與分發(fā)隊(duì)列""

        淺談iOS開發(fā)培訓(xùn)之操作隊(duì)列與分發(fā)隊(duì)列的對比:

        操作隊(duì)列是一種面向?qū)ο蟮倪\(yùn)作方式,使用Objective—C的封裝方式。簡要來說,就是有一個隊(duì)列對象(NSOperationQueue),其中容納了多個操作對象(NSOperation、NSBlockOperation、NSInvoeationOperation),這些操作會根據(jù)隊(duì)列的配置來執(zhí)行。對于自己所容納的操作,操作隊(duì)列對象會自動管理和控制其執(zhí)行。

        分發(fā)隊(duì)列實(shí)際上是一種基于C語言的解決方案,使用了一種新型的中央服務(wù),名為GCD(Grand Central Dispatch,大型中央分發(fā)器)。GCD就像一個集線器或者分發(fā)站,將多項(xiàng)操作分布到多個處理器上,它是構(gòu)建于核心服務(wù)層之上的。當(dāng)GCD分發(fā)一個新線程時,它會根據(jù)當(dāng)前可用資源進(jìn)行判斷,在這一時刻哪個處理器最適合做該項(xiàng)工作,就會為線程選擇該處理器。使用GCD,可以建立3種不同類型的隊(duì)列。

        1、串行隊(duì)列:任務(wù)會按照添加的順序,一個接一個地依次執(zhí)行。在隊(duì)列中的前一個任務(wù)執(zhí)行完畢之前,下一個任務(wù)不會啟動。這種隊(duì)列非常適用于執(zhí)行類似從互聯(lián)網(wǎng)上下載文件這樣的操作,然后在下載完畢之后再將其寫入或者讀到內(nèi)存中。比如說,你不會希望在文件下載完畢之前就寫入該文件。

        2、并發(fā)隊(duì)列:任務(wù)會按照添加的順序執(zhí)行,但根據(jù)當(dāng)時可用的資源情況,可以在前面的任務(wù)結(jié)束之前就啟動下一個任務(wù)。這在執(zhí)行一系列獨(dú)立操作時很有用處,如對多個圖像實(shí)施濾鏡操作。要對下一個圖像進(jìn)行操作,并不需要等到當(dāng)前圖像處理完畢之后。如果GCD認(rèn)為有足夠的資源來啟動第二個任務(wù),它就會自動執(zhí)行這個操作。

        3、主分發(fā)隊(duì)列:這個隊(duì)列與應(yīng)用程序的主循環(huán)是等同的。要記住,當(dāng)你執(zhí)行多線程操作時,用戶界面只能在應(yīng)用程序的主線程中進(jìn)行修改。這樣可以保證用戶的輸入不會被某個后臺線程所忽略。因此,如果你正在某個輔助隊(duì)列中執(zhí)行代碼,而又需要在主線程中執(zhí)行一個動作,就可以在主分發(fā)隊(duì)列中添加一個任務(wù),該任務(wù)會在應(yīng)用程序的主運(yùn)行循環(huán)中執(zhí)行。

        與分發(fā)隊(duì)列類似,基于0bjective.C的操作隊(duì)列也有各種不同的模式。操作隊(duì)列執(zhí)行操作時,可以采取并發(fā)模式或者非并發(fā)模式,非并發(fā)隊(duì)列的運(yùn)作方式非常類似于GCD的主分發(fā)隊(duì)列。雖然操作隊(duì)列沒有像分發(fā)隊(duì)列那樣的串行模式,但可以定義操作的最大并發(fā)數(shù)目。如果希望得到與串行分發(fā)隊(duì)列同樣的效果。只要把最大并發(fā)數(shù)設(shè)為1就可以了。

        如果想更多地了解操作隊(duì)列和分發(fā)隊(duì)列,我強(qiáng)烈推薦你學(xué)習(xí)扣丁學(xué)堂iOS開發(fā)教程視頻,里面包括了iOS開發(fā)具體操作同時還含有C語言課程和C++語言課程講解。完全適合零基礎(chǔ)入門iOS開發(fā)技術(shù)領(lǐng)域。

查看更多關(guān)于“coding資訊”的相關(guān)文章>>

標(biāo)簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部