版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第十六節(jié)課多線程、--方法方法方法(void)method{(void)method{[self}(void)runA[selfrunB];[selfrunC];}(int)runBreturn100;}(void)runC}112…QQ
·每一個程序都有一個主線程,程序啟動時創(chuàng)建(調(diào)用main來啟動·任何有可能堵塞主線程的任務(wù)不要在主線程執(zhí)行 網(wǎng)絡(luò)iOS中的主線程的堆棧大小是從第二個線程開始都是512KB·只有主 ·NSThread每個NSThread對象對應(yīng)一個線程,量級較輕·NSOperation/NSOperationQueueGrandCentralDispatchC ·NSThread:·優(yōu)點:NSThread·NSOperation:·NSOperation是面向?qū)ο蟮模篏randCentralDispatch是由蘋果開發(fā)的一個多核編程的解決方案。iOS4.0+才能使用,是替代NSThreadNSOperation的高效和強大的技術(shù)是基于C語言的11第?種開啟新的線程調(diào)?NSThread*t=[[NSThreadalloc][tstart22第?種開啟新的線程調(diào)?[NSThreadtoTarget:self3第三種開啟新的線程調(diào)?[selfNSOperationQueue*threadQueue=[[NSOperationQueuealloc]init];[threadQueueaddOperationWithBlock:^(void){NSThread*t=[NSThreadcurrentThread];if(![tisMainThread]){}NSOperationQueue*threadQueue=[[NSOperationQueuealloc]init];NSInvocationOperation*op=[[NSInvocationOperationalloc][threadQueue在主線程上調(diào)?reloadData[selfwithObject:nil++(NSThread+++-[self-(void)mutableThreadNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]for(inti=0;i<10;i++){[NSThread}withObject:nilwaitUntilDone:NO];[pool}1.通過類別為UIImageView擴展一個方法,此方法可以異步加載 @interfaceUIImageView-(void)setImageWithURL:(NSURL*)url;·NSRunloop的基本概念·Runloops是線程相關(guān)的的基礎(chǔ)框架的一部分。一個runloop就是一 ·NSRunLoop可以保持一個線程一直為活動狀態(tài),不會馬上銷毀掉?!ぴ诙嗑€程中使用定時器必須開啟Runloop,因為只有開啟Runloop-(void)runThreadNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];[NSTimerscheduledTimerWithTimeInterval:1target:selfuserInfo:nilrepeats:YES];[[NSRunLoopcurrentRunLoop]run];[poolrelease];}··GrandCentralDispatch( )是Apple開發(fā)的一個多核編程的解決方法,在MacOSX10.6雪豹中首次推出,并隨后被引入到了iOS4.0中。 NSThreadNSOperationQueueNSInvocationOperation 應(yīng)文件描述符、machports(Machport用于OSX上的進程間通訊)、進程、計時器、信號、用戶生 。這些句柄通 來并發(fā)執(zhí)行 比之thread更簡單易用?;赽lock的特性導(dǎo)致它能極為簡單得在不同代 DispatchDispatch·DispatchQueueDispatchQueue是什么?是執(zhí)行處理的等待隊列。通過dispatch_async進先出(FIFO)順序追加到Queue中處理?!ispatchQueue:1、SerialDispatchQueue(串行2、ConcurrentDispatchQueue(并行、并Dispatch··ConcurrentDispatchQueue·取決于CPU核數(shù)和CPU負荷。 ·全局隊列(可能會開啟多條線程dispatch_queue_tqueuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,·串行隊列(只可能會開啟一條線程dispatch_queue_tqueue=dispatch_queue_create("myQueue",DISPATCH_QUEUE_SERIAL);·dispatch_queue_create·dispatch_queue_create//創(chuàng)建SerialDispatchQueuedispatch_queue_create("com.wxhl.serial1",NULL);//創(chuàng)建ConcurrentDispatchQueuedispatch_release·在iOS6之后, 兼容ARC,這意味著不再需要用dispatch_retain或者·dispatch_get_main_queue·MainDispatchQueue正如名稱中的Main一樣,是在主 MainDispatchQueueSerialDispatchQueue?!ひ磺懈鶸I有關(guān)的操作必須放在主 執(zhí)行。所以要追加到MainDispatchQueue?!lobalDispatchQueueConcurrentDispatchQueue?!lobalDispatchQueue有4DISPATCH_QUEUE_PRIORITY_HIGHDISPATCH_QUEUE_PRIORITY_DEFAULTDISPATCH_QUEUE_PRIORITY_LOWDISPATCH_QUEUE_PRIORITY_BACKGROUND( eeee·異步操作:dispatch_async·asyncasynchronousBlockDispatchQueue中。dispatch_async··同步追加Block塊,與上面相反。在追加Block結(jié)束之前,dispatch_sync函數(shù)會一·使用dispatch_sync容易引起死鎖,慎重使用。比如在主線 列里面添加任務(wù)的操作就會引起死鎖。/*死鎖1*/dispatch_queue_tqueue=
/*死鎖2*/dispatch_queue_tqueue=dispatch_async(queue,^{··dispatch_group_async·dispatch_group_asyncdispatch_group_notifydispatch_group_waitdispatch_queue_tqueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);dispatch_group_tgroup=dispatch_group_create();dispatch_group_async(group,queue,^{NSLog(@"block1");});dispatch_group_async(group,queue,^{NSLog(@"block2");});dispatch_group_async(group,queue,^{NSLog(@"block3");});/*匯總結(jié)果()dispatch_group_wait(group,DISPATCH_TIME_FOREVER);dispatch_time_ttime=dispatch_time(DISPATCH_TIME_NOW,(1ull*NSEC_PER_SEC));longresult=dispatch_group_wait(group,time);if(result==0)}dispatch·dispatch_once函數(shù)實現(xiàn)單例+(id)allocWithZone:(NSZone{//解決多 同樣只能實例化出?個對象副sta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園中班教學(xué)方面的工作總結(jié)(32篇)
- 小火車教學(xué)反思8篇
- 防溺水演講稿1000字(33篇)
- 新學(xué)期的學(xué)習(xí)計劃分享(33篇)
- 策劃促銷活動項目的方案(3篇)
- 倉庫安全知識培訓(xùn)
- 四年級數(shù)學(xué)(簡便運算)計算題專項練習(xí)與答案
- 醫(yī)療衛(wèi)生系統(tǒng)招聘考試醫(yī)學(xué)基礎(chǔ)知識模擬38
- 醫(yī)療衛(wèi)生系統(tǒng)招聘考試公共基礎(chǔ)知識模擬37
- 機械制造工藝學(xué) 第3版 課件 模塊二 典型零件機械加工工藝文件的制訂+項目三任務(wù)一5箱體孔系加工精度分析
- 橇裝式汽車加油站技術(shù)標準便攜使用版
- 年度框架合同英語
- 2024年度中國顯示面板行業(yè)系列報告(二):市場篇-面板行業(yè)的第五次繁榮周期是否已至
- 2024-2030年中國電子膠粘劑行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 4 給植物畫張“像”(教學(xué)設(shè)計)-2024-2025學(xué)年科學(xué)一年級上冊教科版
- 人教版小學(xué)音樂四年級上冊(簡譜)-唱歌-小螺號-全國公開課一等獎
- 麥肯錫:2024中國汽車消費者洞察報告(英文版)-2024-08-市場解讀
- 浙江大學(xué)介紹
- 職業(yè)技術(shù)學(xué)院《餐飲服務(wù)與數(shù)字化運營》課程標準
- 高速公路路網(wǎng)數(shù)字底座研究與建設(shè)
- 中建二測題庫2024
評論
0/150
提交評論