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 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 无码精品前田一区二区| 亚洲中文字幕一区精品自拍| 国产成人精品亚洲一区| 亚洲一区二区三区在线观看精品中文| 国产一区二区三区电影| 日本一区视频在线播放| 亚洲国产成人久久一区久久| 一区二区三区国模大胆| 波多野结衣一区在线| 欧美日韩国产免费一区二区三区 | 视频一区精品自拍| 国产日韩精品视频一区二区三区 | 久久久久人妻一区精品色| 99无码人妻一区二区三区免费| 亚洲国产成人久久一区二区三区 | 亚洲视频一区二区三区| 中文字幕一区日韩在线视频| 久久一区不卡中文字幕| 国产精品一区二区三区高清在线| 国产在线无码一区二区三区视频| 无码人妻精品一区二区三区久久| 无码人妻一区二区三区免费| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲欧洲一区二区| 亚洲福利精品一区二区三区| 国产成人一区二区三区电影网站 | 亚洲乱码一区二区三区在线观看| 福利电影一区二区| 性色av闺蜜一区二区三区| 好爽毛片一区二区三区四无码三飞| 国产免费一区二区三区不卡 | 亚洲国产美女福利直播秀一区二区| 精品国产AⅤ一区二区三区4区| 国产一区二区免费在线| 亚洲av无码成人影院一区| 亚洲av无码天堂一区二区三区 | 国产一区二区三区在线| 人妻无码视频一区二区三区| 日韩人妻一区二区三区免费| 中文字幕日韩一区二区三区不卡| 少妇一夜三次一区二区|