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无码一区二区三区观看| 国产精品一区12p| 精品一区二区ww| 久久久精品人妻一区二区三区 | 国产福利视频一区二区| 理论亚洲区美一区二区三区| 91精品一区二区| 久久精品免费一区二区三区| 天码av无码一区二区三区四区 | 日本精品少妇一区二区三区| 亚洲欧洲无码一区二区三区| 亚洲AV无一区二区三区久久| 国产高清在线精品一区二区三区| 日本高清天码一区在线播放| 中文字幕av一区| 精品国产一区二区三区四区| 亚洲AV无码一区二区三区DV| 国产福利一区二区在线视频| 制服美女视频一区| 成人久久精品一区二区三区| 国产91久久精品一区二区| 国产一区二区中文字幕| 又硬又粗又大一区二区三区视频| 亚洲视频一区二区| 亚洲Aⅴ无码一区二区二三区软件| 日韩精品久久一区二区三区| 亚洲AV无码国产精品永久一区| 精品无码一区二区三区电影| 亚洲视频在线观看一区| 久久精品无码一区二区WWW| 麻豆文化传媒精品一区二区| 精品一区精品二区制服| 亚洲一区二区三区高清在线观看| 一区二区三区视频| 日韩视频在线一区| 亚洲AⅤ视频一区二区三区|