freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ios平臺下并發(fā)編程的研究和實現(xiàn)畢業(yè)論文(已修改)

2025-08-08 08:25 本頁面
 

【正文】 畢業(yè)論文題 目:iOS平臺下并發(fā)編程的研究和實現(xiàn)姓 名: 學(xué) 號:指導(dǎo)教師(職稱): 專 業(yè): 班 級:所 在 學(xué) 院: 2015年6月武漢工程大學(xué) 畢業(yè)論文目 錄摘 要 ……………………………………………………………………………………… IIIAbstract ……………………………………………………………………………………. V第一章 緒 論…………………………………………………………………………… … 1 移動開發(fā)中的并發(fā)編程 …………………………………………………………… .... 1 移動操作系統(tǒng)iOS的發(fā)展 ………………………………………………………… .... 1 論文章節(jié)安排 ……………………………………………………………………….… 2第二章 并發(fā)程序的設(shè)計 …………………………………………………………………..3 摒棄線程 ……………………………………………………………………………. …3 異步編程技術(shù)介紹 …………………………………………………………………. …4 異步編程設(shè)計 ………………………………………………………………………. …5 衡量引入并發(fā)后對程序性能的影響 ………………………………………………. …6 何時使用原生線程 …………………………………………………………………. …6第三章 操作隊列……………………………………………………………………………7 NSOperation 對象簡介 ……………………………………………………………. …7 子類化 NSOperation ………………………………………………………………. …7 自定義操作對象的執(zhí)行行為 ……………………………………………………….…11 開始執(zhí)行操作對象 ………………………………………………………………….…12第四章 調(diào)度隊列………………………………………………………………………….. 15 調(diào)度隊列介紹 ……………………………………………………………………….…15 與隊列相關(guān)的一些技術(shù)點 ………………………………………………………….…16 使用block實現(xiàn)任務(wù) ……………………………………………………………….…16 創(chuàng)建和管理調(diào)度隊列 ……………………………………………………………….…17 添加任務(wù)到隊列中 ………………………………………………………………….…20 掛起和恢復(fù)調(diào)度隊列 ……………………………………………………………….…22 使用dispatch信號量控制可用的有限資源……………………………………….…23 等待一組任務(wù)的完成 ……………………………………………………………….…23 調(diào)度隊列和線程安全 ……………………………………………………………….…24第五章 調(diào)度源…………………………………………………………………………….. 25 Dispatch Source介紹 ……………………………………………………………. …25 創(chuàng)建Dispatch Source ……………………………………………………………. …26 使用調(diào)度源的一些例子 …………………………………………………………….…29總 結(jié) …….……………………………………………………..…………………………....35致 謝 …….……………………………………………………..…………………………....37參考文獻(xiàn) …….………………..………………………………..……………………………39 40 摘 要 移動互聯(lián)網(wǎng)的浪潮席卷而至,隨著智能手機(jī)等設(shè)備上中央處理器性能的提升,以及多核CPU在移動終端上的普及,每個處理器上的核心只會增加。這種設(shè)備性能上的提升使得其應(yīng)用程序?qū)涌旖萘鲿?,程序更加高效以及產(chǎn)品更好的用戶體驗。在計算機(jī)中,單個核心下的并發(fā)一般為時間片的輪流,宏觀上為多個任務(wù)同時執(zhí)行,微觀上每個時刻仍然只執(zhí)行一個任務(wù)。由于多核時代的來臨,線程才開始擁有了真正意義上的并行處理。多線程也作為越來越重要的一個部分需要開發(fā)者來掌握。然而受限于設(shè)備能耗以及內(nèi)存大小等問題,移動應(yīng)用開發(fā)中的多線程編程又區(qū)別于其他程序開發(fā)。作為開發(fā)者,需要擁抱變化,積極的適應(yīng)技術(shù)的發(fā)展,并提升自己。關(guān)鍵詞:并發(fā)編程;移動互聯(lián)網(wǎng);多線程;移動應(yīng)用開發(fā)AbstractWith the advent of mobile Internet, CPU performance boost on Smartphones and other devices, Multicore CPU on mobile devices became mon, the cores of processor will more and more. This performance upgrades of device that make the application will be faster and more smooth, procedures more efficient, and it will have a better user experience. On the puter, concurrent of single core is time turns. Looks at the macro level is performed multiple tasks at the same time, micro level each time still perform only one task. Because of the advent of the multicore processor, the thread began with a real sense of concurrent processing. Development of multithread increasing importance, and requires the developer to learn. However, due to the limitations of device’s energy consumption and memory size, Concurrent programming in mobile application development is different from other programming. As a developer, you need to embrace change, learn the latest techniques, and improve yourself.Keywords:Concurrency Programming;Mobile Internet;Multithreading;Mobile application development第一章 緒 論在移動應(yīng)用開發(fā)中,由于受限與設(shè)備屏幕尺寸、處理器性能以及能耗等問題,與傳統(tǒng)軟件開發(fā)有不同之處。從提升程序性能開始,著重介紹如何利用多核處理器進(jìn)行iOS平臺下的多線程開發(fā)。并發(fā)所描述的概念就是同時運行多個任務(wù)。這些任務(wù)在單核 CPU 上所采取的方案為時間片輪流,即同一時間段內(nèi)執(zhí)行多核任務(wù),但是同一時刻只有一個任務(wù)處于執(zhí)行狀態(tài)。在多核 CPU 上才以真正的并行方式來運行。現(xiàn)在大多數(shù)智能設(shè)備處理器都至少有兩個核心,移動操作系統(tǒng)能夠并行的運行多個程序,其中大多數(shù)的程序運行在后臺,并且經(jīng)常需要一小段 CPU 時間來執(zhí)行任務(wù)。運行在前臺的程序與用戶交互并且占用大量的 CPU 時間。如果一個程序需要很多任務(wù)去執(zhí)行,但是只能使用處理器中的一部分核心,那么多核的特性將無法發(fā)揮,額外的計算資源將被浪費。因此,程序需要充分利用處理器的多核特性,將處理器的性能充分挖掘出來,提高程序的性能以及用戶體驗。隨著移動開發(fā)領(lǐng)域的快速發(fā)展,對于開發(fā)者,需要擁抱變化,盡快掌握移動端的多線程編程技術(shù)。在國內(nèi)外,iOS 系統(tǒng)擁有眾多開發(fā)者的支持,2014年3月份,AppStore 中的應(yīng)用數(shù)已經(jīng)超過100萬,國內(nèi)和國外開始進(jìn)入iOS開發(fā)領(lǐng)域的技術(shù)人員也再高速增長。OS X 和 iOS 提供了幾種不同的 API 來支持并發(fā)編程。每一條 API 都具有不同的功能和使用上的一些限制,這就需要在不同的情景下使用最適合的并發(fā)方式。同時,這些 API 本身處在不同的抽象層級上。我們很可能會使用它們進(jìn)行一些特別底層的操作,但同時也意味著將背負(fù)起處理好這些操作的責(zé)任。為了利用多核,計算機(jī)需要軟件能夠同時干多件事情?,F(xiàn)代的多任務(wù)操作系統(tǒng),可以有上百的程序在給定的時間內(nèi)運行,所以可以調(diào)度每個程序執(zhí)行在不同的核上。然而,大多數(shù)的程序?qū)儆谙到y(tǒng)駐守進(jìn)程,或那些運行在后臺,只需要很少 CPU 時間的程序。相反,真正的需要是為單個應(yīng)用程序高效地使用處理器額外的核心。應(yīng)用程序利用多核的傳統(tǒng)方式是創(chuàng)建多個線程,然而,由于核心的增加,有許多線程相關(guān)的問題需要解決,最大的問題是線程代碼不能很好的拓展到任意數(shù)目的核心。不能創(chuàng)建很多的線程,然后認(rèn)為程序會很好的運行這些線程。我們無法確認(rèn)具體使用多少個核心才是最高效的,程序本身也無法很好地通過計算得出這個數(shù)值。即使得到了正確的數(shù)字,想要這么多線程之間不能干擾且高效運行,仍然具有很大的難度。所以我們需要一種抽象層次比線程高,同時效率又不能比線程太低的方式來處理并發(fā)。在過去,在程序中引入并發(fā)需要創(chuàng)建額外的一個或多個線程。不幸的是,寫線程級別的代碼很具有挑戰(zhàn)性。線程是很底層的工具,必須手動來管理。對于一個程序,由于線程的最佳數(shù)目基于系統(tǒng)負(fù)載和底層硬件而動態(tài)改變,因此實現(xiàn)一個正確的線程解決方案是非常困難和復(fù)雜的。此外,線程的同步機(jī)制通常會給軟件設(shè)計增加復(fù)雜性和帶來風(fēng)險,有時候并不能保證一定會提高程序性能。相比較傳統(tǒng)的基于線程的系統(tǒng)和應(yīng)用程序,OS X 和 iOS 更多地采用異步方法來執(zhí)行并行任務(wù)。應(yīng)用程序只需要定義特定的任務(wù),然后讓系統(tǒng)執(zhí)行它們,而不是直接創(chuàng)建線程。通過讓操作系統(tǒng)來管理線程,使得應(yīng)用程序具有了原生線程不可能具有的可擴(kuò)展性,同時開發(fā)者也有了更加簡單高效的編程模式。論文主要介紹了iOS平臺下并發(fā)編程的技術(shù)和技巧,包含以下章節(jié):1. 并行和程序設(shè)計:介紹了基本的異步程序設(shè)計和異步執(zhí)行自定義任務(wù)的技巧。2. Operation Queues(操作隊列):介紹如何使用 ObjectiveC 對象封裝任務(wù)并且執(zhí)行。3. Dispatch Queue(調(diào)度隊列):在 C 語言編程環(huán)境中,如何并行地執(zhí)行任務(wù)。4. Dispatch Sources:如何異步的處理系統(tǒng)事件。第二章 并發(fā)程序的設(shè)計早期的計算機(jī)執(zhí)行最小任務(wù)所需的時間單元取決于CPU的時鐘速度,但隨著CPU技術(shù)的發(fā)展以及處理器上的核心越來越密集,散熱和其他物理因素開始影響CPU的最大時鐘速度。因此廠商們開始將注意力轉(zhuǎn)移到如何在單個芯片上加入更多的處理器核心,即多核CPU,這樣單個芯片的性能將又得到提升,因而剩下的問題就是如何充分利用這些增加的核心。傳統(tǒng)意義上利用CPU多核特性的方式為創(chuàng)建多個線程,然而移動設(shè)備上的CPU受限于系統(tǒng)負(fù)載和散熱等其他因素,不可以創(chuàng)建大量的線程而又使得程序很好的運行。因此需要一種比較好的方式來解決移動端多線程編程的問題。線程是利用處理器多核特性最直接的方式,也是組成進(jìn)程的子單元,操作系統(tǒng)的調(diào)度器可以對線程進(jìn)行單獨的調(diào)度。但是線程無法解決如何彈性地執(zhí)行多個任務(wù)這個很普遍的問題,我們無法控制自己線程中的代碼在什么時候開始執(zhí)行,需要執(zhí)行多長時間,什么時候暫停。直接使用線程執(zhí)行任務(wù)的另一個問題是,如果線程中的代碼使用了框架或庫時,那么執(zhí)行任務(wù)所增加的線程總數(shù)有可能以指數(shù)級別增長。例如,在8核CPU中,創(chuàng)建8個線程完成某個任務(wù),看起來似乎充分利用了CPU的多個核心,但是很有可能每個線程中用到的某個框架又創(chuàng)建了多個線程[1]。創(chuàng)建每個線程都會消耗一些內(nèi)存和內(nèi)核資源,因此如何動態(tài)地拓展線程數(shù)目就變得尤為重要,我們期望根據(jù)系統(tǒng)負(fù)載和當(dāng)前可用的資源能夠動態(tài)的控制當(dāng)前活動線程的數(shù)量。如果把這項任務(wù)交由開發(fā)者,那么多線程編程將會變得更加復(fù)雜,因此,最好的方式是使用系統(tǒng)為我們提供的并發(fā)編程模型。為了不依賴于線程,iOS中采用異步編程的方式來處理需要后臺運行的任務(wù)。異步這個概念已經(jīng)存在于計算機(jī)中很長時間了,主要用于執(zhí)行一些需要花費很長時間的任務(wù),例如從磁盤中讀取文件,從網(wǎng)絡(luò)上獲取數(shù)據(jù)等。當(dāng)異步函數(shù)被調(diào)用后,任務(wù)就會在后臺開始執(zhí)行,同時函數(shù)會立刻返回,同時繼續(xù)執(zhí)行后續(xù)的任務(wù)。當(dāng)處于后臺中的任務(wù)執(zhí)行完成后,會發(fā)送通知給調(diào)用者(通常為函數(shù)回調(diào)),調(diào)用者在函數(shù)回調(diào)中處理任務(wù)完成后的相關(guān)操作。這種異步的方式既不影響當(dāng)前任務(wù)的執(zhí)行,又能利用額外的核心完成非常耗時的操作。在iOS平臺下,Apple已經(jīng)提供了幾種異步的編程技術(shù),下面主要介紹這些技術(shù)。使用異步編程的技術(shù)之一為 GCD(Grand Central Dispatch)。這項技術(shù)能夠?qū)⒃鹃_發(fā)者需要編寫的線程管理代碼轉(zhuǎn)移到系統(tǒng)級別,開發(fā)者只需定義需要執(zhí)行的任務(wù)并將其添加到適合的調(diào)度隊列即可。GCD 負(fù)責(zé)創(chuàng)建線程并在線程上執(zhí)行任務(wù)所需的代碼,現(xiàn)在由于線程管理是系統(tǒng)的一部分,GCD接管了線程管理以及任務(wù)的執(zhí)行,因此這種方式要比傳統(tǒng)創(chuàng)建線程的方式高效一些,更重要的是極大地減輕了開發(fā)者的負(fù)擔(dān)。另一種使用異步編程的技術(shù)為 Operation Queue,它是 ObjectiveC 對象,如同調(diào)度隊
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1