日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS之多线程 2

發(fā)布時(shí)間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之多线程 2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

GCD

GCD(GRAND CENTRAL DISPATCH),就是牛逼的中樞調(diào)度器。C語(yǔ)言寫的,提供了多種函數(shù)。

1.任務(wù)和隊(duì)列

GCD兩個(gè)核心的概念就是任務(wù)和隊(duì)列。 任務(wù):執(zhí)行什么操作的。 隊(duì)列:專門來存放任務(wù)的。 GCD的使用很簡(jiǎn)單,也就是先把任務(wù)定制好,然后放在隊(duì)列中,GCD會(huì)自動(dòng)的將任務(wù)從隊(duì)列中取出來,然后放到對(duì)應(yīng)的線程中去執(zhí)行,任務(wù)的取出遵循先進(jìn)先出和后進(jìn)后出的原則。

2.同步、異步

// 同步 dispatch_sync(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>) // 異步 dispatch_async(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>) queue:隊(duì)列 block:任務(wù) 復(fù)制代碼

同步和異步的區(qū)別: 同步:只能在當(dāng)前線程中執(zhí)行任務(wù),不具備開啟新的線程的能力 異步:可以在新的線程中執(zhí)行任務(wù),具備開啟新的線程的能力

3.串行隊(duì)列、并發(fā)隊(duì)列

并發(fā)隊(duì)列:可以將多個(gè)任務(wù)并發(fā)的同時(shí)的執(zhí)行,自動(dòng)的開啟多個(gè)線程同時(shí)執(zhí)行任務(wù)。 串行隊(duì)列:任務(wù)是一個(gè)接著一個(gè)的執(zhí)行。

以上的四個(gè)術(shù)語(yǔ)的一些說明:關(guān)于同步異步,只是說明了有無開具新的線程的能力;而對(duì)串行和并發(fā)隊(duì)列來說就是任務(wù)執(zhí)行的方式。

4.GCD的基本使用

  • 異步并發(fā):
/**異步+并發(fā)->會(huì)開啟多條線程的,隊(duì)列中任務(wù)是異步執(zhí)行的*/ - (void)wjAsyncConcurrent {// 1.創(chuàng)建隊(duì)列// DISPATCH_QUEUE_CONCURRENT : 并發(fā)隊(duì)列dispatch_queue_t queue = dispatch_queue_create("com.wj.downLoad", DISPATCH_QUEUE_CONCURRENT);// 2.定制任務(wù)->還將把任務(wù)添加到隊(duì)列中dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 1 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 2 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 3 : %@", [NSThread currentThread]);});/*打印結(jié)果異步+并發(fā) 1 : <NSThread: 0x600000070480>{number = 3, name = (null)}異步+并發(fā) 3 : <NSThread: 0x600000070840>{number = 4, name = (null)}異步+并發(fā) 2 : <NSThread: 0x600000070680>{number = 5, name = (null)}*/ } 復(fù)制代碼
  • 異步串行
/**異步+串行->會(huì)開線程,開了一條線程,隊(duì)列中的任務(wù)是串行執(zhí)行的。*/ - (void)wjAsyncSerial {dispatch_queue_t queue = dispatch_queue_create("com.wj.download", DISPATCH_QUEUE_SERIAL);dispatch_async(queue, ^{NSLog(@"異步+串行 1 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+串行 2 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+串行 3 : %@", [NSThread currentThread]);});/*打印結(jié)果異步+串行 1 : <NSThread: 0x60800006dd80>{number = 3, name = (null)}異步+串行 2 : <NSThread: 0x60800006dd80>{number = 3, name = (null)}異步+串行 3 : <NSThread: 0x60800006dd80>{number = 3, name = (null)}*/ } 復(fù)制代碼
  • 同步并發(fā)
/**同步+并發(fā)->不會(huì)開線程,在主線程中執(zhí)行,且任務(wù)是串行執(zhí)行*/ - (void)wjSyncConcurrent {dispatch_queue_t queue = dispatch_queue_create("com.wj.downLoad", DISPATCH_QUEUE_CONCURRENT);dispatch_sync(queue, ^{NSLog(@"同步+并發(fā) 1 : %@", [NSThread currentThread]);});dispatch_sync(queue, ^{NSLog(@"同步+并發(fā) 2 : %@", [NSThread currentThread]);});dispatch_sync(queue, ^{NSLog(@"同步+并發(fā) 3 : %@", [NSThread currentThread]);});/*打印結(jié)果同步+并發(fā) 1 : <NSThread: 0x608000261f80>{number = 1, name = main}同步+并發(fā) 2 : <NSThread: 0x608000261f80>{number = 1, name = main} 同步+并發(fā) 3 : <NSThread: 0x608000261f80>{number = 1, name = main}*/ } 復(fù)制代碼
  • 同步串行
/**同步+串行->不會(huì)開線程*/ - (void)wjSyncSerial {dispatch_queue_t queue = dispatch_queue_create("com.wj.download", DISPATCH_QUEUE_SERIAL);dispatch_sync(queue, ^{NSLog(@"同步+串行 1 : %@", [NSThread currentThread]);});dispatch_sync(queue, ^{NSLog(@"同步+串行 2 : %@", [NSThread currentThread]);});dispatch_sync(queue, ^{NSLog(@"同步+串行 3 : %@", [NSThread currentThread]);});/*打印結(jié)果同步+串行 1 : <NSThread: 0x600000077180>{number = 1, name = main}同步+串行 2 : <NSThread: 0x600000077180>{number = 1, name = main}同步+串行 3 : <NSThread: 0x600000077180>{number = 1, name = main}*/ } 復(fù)制代碼
  • 線程開多少的問題?
/**獲得全局并發(fā)隊(duì)列*/ - (void)wjGetGlobleConcurrentQueue {dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 1 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 2 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 3 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 4 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 5 : %@", [NSThread currentThread]);});dispatch_async(queue, ^{NSLog(@"異步+并發(fā) 6 : %@", [NSThread currentThread]);});/*打印結(jié)果->可以顯示出,并不是有多少個(gè)任務(wù)就創(chuàng)建多少個(gè)線程,而是有系統(tǒng)自己決定的。異步+并發(fā) 3 : <NSThread: 0x60000026c700>{number = 5, name = (null)}異步+并發(fā) 4 : <NSThread: 0x6080002688c0>{number = 6, name = (null)}異步+并發(fā) 1 : <NSThread: 0x608000268c80>{number = 3, name = (null)}異步+并發(fā) 2 : <NSThread: 0x608000268a80>{number = 4, name = (null)}異步+并發(fā) 5 : <NSThread: 0x60000026c3c0>{number = 7, name = (null)}異步+并發(fā) 6 : <NSThread: 0x60000026c700>{number = 5, name = (null)}*/ } 復(fù)制代碼

總結(jié)

以上是生活随笔為你收集整理的iOS之多线程 2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99re在线视频免费观看 | 香港三日本三级少妇66 | 99热网站| 黄色大片免费网站 | 亚洲色图p | 国产精品九九热 | 国产五十路 | 国产精品无码久久久久久 | 一级毛毛片 | 免费91网站 | 6080午夜伦理 | 男女午夜免费视频 | 国产原创一区 | yy1111111| 欧美日韩乱国产 | 艳妇乳肉豪妇荡乳 | 国产成年无码久久久久毛片 | 欧美日本日韩 | 日韩av一卡二卡 | av网址免费在线观看 | 九九九在线视频 | 亚洲中文字幕无码爆乳av | 亚洲精品888 | 免费成人进口网站 | 黄色一级免费片 | www.久久av.com | 伊人久久大香线蕉成人综合网 | 日韩三级小视频 | 97久久人人超碰caoprom欧美 | 久久大| 日本做爰高潮又黄又爽 | av鲁丝一区鲁丝二区鲁丝三区 | 国产激情小视频 | 美女福利视频网 | 美女的奶胸大爽爽大片 | 色一情| 免费在线观看小视频 | 欧美特级黄 | 另类综合网 | 久久无码人妻丰满熟妇区毛片 | 一级黄色片在线 | 又黄又爽的免费视频 | 婷婷成人在线 | 与子敌伦刺激对白播放的优点 | 久久久久久久久久久国产 | 免费视频www在线观看网站 | 精品亚洲一区二区三区 | 日本一区免费视频 | 日本三级精品 | 日本三级视频在线播放 | 亚洲精品资源在线 | 91插视频| a级淫片| 潘金莲三级野外 | 狠狠躁18三区二区一区 | 天天干天天操天天爱 | 制服丝袜亚洲色图 | www国产免费 | 91在线看| 蜜桃又黄又粗又爽av免 | 伊人影片 | 亚洲精品77777| 午夜爱爱网| 欧美色图久久 | 亚洲性xxxx | 老熟女毛茸茸浓毛 | 激情视频91 | 欧美精品在线视频观看 | 国产精品九九九九 | 超碰人人在线观看 | 日韩欧美少妇 | 亚洲日本在线观看视频 | 久久a毛片 | 欧美在线一级视频 | 国产精品日日夜夜 | 免费观看日韩av | 天堂色网 | 国产理论片在线观看 | 无码一区二区三区在线 | 日韩av无码一区二区三区 | 国产成人精品免费 | 麻豆av一区二区三区久久 | 日韩电影网站 | 五月婷婷视频在线观看 | 久久99热人妻偷产国产 | 毛片网站免费观看 | 国产特黄毛片 | 暖暖成人免费视频 | 亚洲大片 | 一区二区三区日 | 人妻精品一区二区三区 | 午夜天堂精品久久久久 | 制服 丝袜 综合 日韩 欧美 | 国产在线看 | 日本黄色视| 狠狠干视频网 | sm捆绑调教视频 | 男人都懂的网站 | 国产日本在线观看 |