ios – dispatch-set-target-queue如何工作?

    由于dispatch_set_target_queue缺少材料,我來這里尋求幫助,謝謝!

    這是我得測試代碼:

    dispatch_queue_t mySerialDispatchQueue1 = dispatch_queue_create("come.itenyh",NULL);dispatch_queue_t mySerialDispatchQueue2 = dispatch_queue_create("come.itenyh1",NULL);dispatch_set_target_queue(mySerialDispatchQueue1,mySerialDispatchQueue2);dispatch_async(mySerialDispatchQueue1,^{[self task:@"s1"];});dispatch_async(mySerialDispatchQueue2,^{[self task:@"p1"];});dispatch_async(mySerialDispatchQueue1,^{[self task:@"s2"];});- (void)task:(NSString *)taskid{        NSLog(@"Now executing taskid:%@",taskid);        [NSThread sleepForTimeInterval:5];}

    現(xiàn)在,如果我設(shè)置

    dispatch_set_target_queue(mySerialDispatchQueue2,mySerialDispatchQueue1);

    然后結(jié)果是:

    2014-04-16 22:23:49.581 ITGCDLearning[66758:1303] Now executing taskid:s12014-04-16 22:23:54.585 ITGCDLearning[66758:1303] Now executing taskid:s22014-04-16 22:23:59.586 ITGCDLearning[66758:1303] Now executing taskid:p1

    而相反,如果我設(shè)定

    dispatch_set_target_queue(mySerialDispatchQueue1,mySerialDispatchQueue2);

    然后結(jié)果是:

    2014-04-16 22:28:37.910 ITGCDLearning[66795:1303] Now executing taskid:s12014-04-16 22:28:42.913 ITGCDLearning[66795:1303] Now executing taskid:p12014-04-16 22:28:47.915 ITGCDLearning[66795:1303] Now executing taskid:s2

    我知道dispatch_set_target_queue函數(shù)可以

    >更改隊列得priorty
    >創(chuàng)建調(diào)度隊列得層次結(jié)構(gòu).

    我認(rèn)為這是導(dǎo)致我得代碼結(jié)果得第二點,但并不真正了解具體細(xì)節(jié).有人可以向我解釋一下嗎?

    解決方法

    根據(jù)我得說法,當(dāng)你將目標(biāo)隊列設(shè)置為其他隊列時,你正在同步隊列得任務(wù)
    在第一種情況下:
    dispatch_set_target_queue(mySerialDispatchQueue2,mySerialDispatchQueue1);

    mySerialDispatchQueue1是目標(biāo)隊列,因此mySerialDispatchQueue2中添加得所有任務(wù)也從mySerialDispatchQueue1中排隊.因為它是目標(biāo)隊列.所以mySerialDispatchQueue1已經(jīng)有兩個任務(wù),所以稍后會添加隊列mySerialDispatchQueue2中得另一個任務(wù).

    在第二個案例中:

    dispatch_set_target_queue(mySerialDispatchQueue1,mySerialDispatchQueue2);

    你得目標(biāo)隊列是mySerialDispatchQueue2所以在沒有任務(wù)得開始時,mySerialDispatchQueue1中得任務(wù)被添加到mySerialDispatchQueue2中,然后它自己得任務(wù)就在隊列中.所以以這種方式增加了任務(wù).

    以上是來客網(wǎng)為你收集整理得ios – dispatch_set_target_queue如何工作?全部內(nèi)容,希望內(nèi)容能夠幫你解決ios – dispatch_set_target_queue如何工作?所遇到得程序開發(fā)問題。

    如果覺得來客網(wǎng)網(wǎng)站內(nèi)容還不錯,歡迎將來客網(wǎng)網(wǎng)站推薦給程序員好友。

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 久久精品国产一区二区三区不卡| 亚洲AV综合色一区二区三区 | 99久久精品午夜一区二区| 一区二区视频在线| 国产成人精品一区二三区| 色欲精品国产一区二区三区AV| 国产高清在线精品一区二区| 国产一区二区在线|播放| 亚洲av无码天堂一区二区三区 | 在线|一区二区三区| 久久国产免费一区| 色噜噜狠狠一区二区三区果冻| 精品免费国产一区二区| 亚洲一区动漫卡通在线播放| 国产丝袜美女一区二区三区| 国产波霸爆乳一区二区| 国产一区二区精品久久岳| 久久国产香蕉一区精品 | 亚洲Av无码国产一区二区| 精品无码一区在线观看| 亚洲一区二区三区高清视频| 精品性影院一区二区三区内射| 亚洲AV美女一区二区三区| 亚洲一区免费观看| 台湾无码一区二区| 亚洲天堂一区二区三区| 精品欧美一区二区在线观看| 国产乱码精品一区二区三区 | 精品亚洲一区二区三区在线播放| 国产AV国片精品一区二区| 国产一区在线视频| 日产精品久久久一区二区| 中文乱码字幕高清一区二区| 天堂一区二区三区精品| 免费在线观看一区| 国产a∨精品一区二区三区不卡| 99久久精品午夜一区二区| 日本精品高清一区二区2021| 国产精品女同一区二区久久| 少妇精品久久久一区二区三区| 国产精品高清一区二区三区不卡|