并發(fā)編程03

  • 并行和其他技術(shù)。把你的代碼分布在模塊化的代碼塊中,改進(jìn)并發(fā)量的最好辦法。也不是在任何時(shí)候任何情況下都是這樣。依賴你的任務(wù),有其他的并發(fā)辦法。
  • OpenCL和并發(fā)。OSX,開(kāi)放計(jì)算語(yǔ)言。標(biāo)準(zhǔn)基礎(chǔ)技術(shù)。執(zhí)行通用計(jì)算在顯卡處理器中。是一個(gè)好用的技術(shù)如果你有一個(gè)定義很好的計(jì)算集合。想要應(yīng)用在大量數(shù)據(jù)上。比如,你可能用OpenCL執(zhí)行過(guò)濾指令在一個(gè)圖片的像素上,或使用它執(zhí)行復(fù)雜的數(shù)學(xué)計(jì)算一次性。換句話說(shuō),OpenCL是一個(gè)齒輪,更多的是面向數(shù)據(jù)能平行的問(wèn)題。
  • 不適用于通用計(jì)算。需要非常大的努力準(zhǔn)備和轉(zhuǎn)換兩種數(shù)據(jù)和必須的工作從核心到顯卡使得可以被GPU操作。同樣的,計(jì)算結(jié)果的轉(zhuǎn)換也比較麻煩。所以,和系統(tǒng)交互的任務(wù)不要用OpenCL,最好是自包含的任務(wù)。計(jì)算獨(dú)立。
  • 什么時(shí)候用線程?雖然Opreation Queue或dispatch queue是推薦的方法,但是也不是萬(wàn)能藥。最好是盡可能少的創(chuàng)建線程,只能用這個(gè)線程做特殊的任務(wù)。dispatch queue保證盡可能多的執(zhí)行任務(wù),但是不保證實(shí)時(shí)約束。如果你需要更多的預(yù)先行為在后臺(tái)運(yùn)行,最好也是用線程。
  • Opreation Queue。Operation是面向?qū)ο蟮姆绞桨四阆雸?zhí)行異步的操作?;蛘呤遣l(fā)在一個(gè)隊(duì)列里,或者是自己執(zhí)行。因?yàn)槭腔贠C的,所以最常用。
  • Operation對(duì)象。一個(gè)Operation是一個(gè)NSOperation對(duì)象。NSOperation是個(gè)抽象類,需要子類化。雖然是抽象類,也提供了重大的有意義的操作在你的子類。另外,也提供了兩個(gè)具體的子類。
  • NSInvocationOpreation
  • NSBlockOpreration
  • NSOperation
  • 所有的Operation對(duì)象支持以下的特性。支持在對(duì)象間基于圖的依賴。一個(gè)完成之后執(zhí)行另一個(gè)。支持可選的完成block。支持使用KVO監(jiān)控執(zhí)行變化。支持優(yōu)先級(jí)。支持取消語(yǔ)義。
  • Opreation是設(shè)計(jì)為增強(qiáng)你的并發(fā)性的。也是一個(gè)好的組織方式,組織包含你的APP的簡(jiǎn)單獨(dú)立行為。不是在主線程中執(zhí)行,而是在異步的后臺(tái)線程中執(zhí)行。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容