IOS開發(66)之構建自己的指派隊列

來源:互聯網
上載者:User

1 前言

使用 dispatch_queue_create 函數。 建立你自己的、獨特命名的指派隊列。


2 代碼執行個體
ZYAppDelegate.m

 

[plain]
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    //建立自己命名的隊列 
    dispatch_queue_t firstSerialQueue = dispatch_queue_create("ZYAppDelegate.GCD.serialQueue1", 0); 
    //執行Block 
    dispatch_async(firstSerialQueue, ^{ 
        NSUInteger counter = 0; 
        for (counter = 0;counter < 5;counter++){ 
            NSLog(@"First iteration, counter = %lu", (unsigned long)counter); 
        } }); 
    dispatch_async(firstSerialQueue, ^{ 
        NSUInteger counter = 0; 
        for (counter = 0; 
             counter < 5; 
             counter++){ 
            NSLog(@"Second iteration, counter = %lu", (unsigned long)counter); 
        } }); 
    dispatch_async(firstSerialQueue, ^{ 
        NSUInteger counter = 0; 
        for (counter = 0; 
             counter < 5; 
             counter++){ 
            NSLog(@"Third iteration, counter = %lu", (unsigned long)counter); 
        } }); 
    //釋放隊列 
    dispatch_release(firstSerialQueue); 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 
    self.viewController = [[[ZYViewController alloc] initWithNibName:@"ZYViewController" bundle:nil] autorelease]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //建立自己命名的隊列
    dispatch_queue_t firstSerialQueue = dispatch_queue_create("ZYAppDelegate.GCD.serialQueue1", 0);
    //執行Block
    dispatch_async(firstSerialQueue, ^{
        NSUInteger counter = 0;
        for (counter = 0;counter < 5;counter++){
            NSLog(@"First iteration, counter = %lu", (unsigned long)counter);
        } });
    dispatch_async(firstSerialQueue, ^{
        NSUInteger counter = 0;
        for (counter = 0;
             counter < 5;
             counter++){
            NSLog(@"Second iteration, counter = %lu", (unsigned long)counter);
        } });
    dispatch_async(firstSerialQueue, ^{
        NSUInteger counter = 0;
        for (counter = 0;
             counter < 5;
             counter++){
            NSLog(@"Third iteration, counter = %lu", (unsigned long)counter);
        } });
    //釋放隊列
    dispatch_release(firstSerialQueue);
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ZYViewController alloc] initWithNibName:@"ZYViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}
運行後控制台結果


2013-05-12 11:41:59.221 GCDQueueTest2[1030:1303] First iteration, counter = 0

2013-05-12 11:41:59.223 GCDQueueTest2[1030:1303] First iteration, counter = 1

2013-05-12 11:41:59.223 GCDQueueTest2[1030:1303] First iteration, counter = 2

2013-05-12 11:41:59.224 GCDQueueTest2[1030:1303] First iteration, counter = 3

2013-05-12 11:41:59.225 GCDQueueTest2[1030:1303] First iteration, counter = 4

2013-05-12 11:41:59.226 GCDQueueTest2[1030:1303] Second iteration, counter = 0

2013-05-12 11:41:59.227 GCDQueueTest2[1030:1303] Second iteration, counter = 1

2013-05-12 11:41:59.228 GCDQueueTest2[1030:1303] Second iteration, counter = 2

2013-05-12 11:41:59.229 GCDQueueTest2[1030:1303] Second iteration, counter = 3

2013-05-12 11:41:59.230 GCDQueueTest2[1030:1303] Second iteration, counter = 4

2013-05-12 11:41:59.232 GCDQueueTest2[1030:1303] Third iteration, counter = 0

2013-05-12 11:41:59.232 GCDQueueTest2[1030:1303] Third iteration, counter = 1

2013-05-12 11:41:59.233 GCDQueueTest2[1030:1303] Third iteration, counter = 2

2013-05-12 11:41:59.233 GCDQueueTest2[1030:1303] Third iteration, counter = 3

2013-05-12 11:41:59.234 GCDQueueTest2[1030:1303] Third iteration, counter = 4

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.