// 创建一个GCD 的队列(这个是串行队列)
dispatch_queue_t queue = dispatch_queue_create("com.lcy.queue", NULL);
/**
自己创建的 虽然 也会走 异步操作 但是 可以看出 不管怎么走 都会 是 下一个操作总是依赖上一个操作
2016-01-13 18:13:25.814 多线程[9617:191151] 异步任务_1
2016-01-13 18:13:25.814 多线程[9617:191112] -------- 异步分割线 1 -------
2016-01-13 18:13:25.815 多线程[9617:191112] -------- 异步分割线 2 -------
2016-01-13 18:13:25.815 多线程[9617:191112] -------- 异步分割线 3 -------
2016-01-13 18:13:25.815 多线程[9617:191112] -------- 分割线 -------
2016-01-13 18:13:27.815 多线程[9617:191151] 异步任务_2
2016-01-13 18:13:27.815 多线程[9617:191151] 异步任务_3
2016-01-13 18:13:27.816 多线程[9617:191151] 异步任务_4
2016-01-13 18:13:29.817 多线程[9617:191112] 同步任务_1
2016-01-13 18:13:29.817 多线程[9617:191112] -------- 同步分割线 1 -------
2016-01-13 18:13:29.818 多线程[9617:191112] 同步任务_2
2016-01-13 18:13:29.818 多线程[9617:191112] -------- 同步分割线 2 -------
2016-01-13 18:13:29.819 多线程[9617:191112] 同步任务_3
*/
//全局队列
//queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
/**
如果是全局的队列
2016-01-13 18:15:20.922 多线程[9633:191968] -------- 异步分割线 1 -------
2016-01-13 18:15:20.922 多线程[9633:192071] 异步任务_1
2016-01-13 18:15:20.922 多线程[9633:191968] -------- 异步分割线 2 -------
2016-01-13 18:15:20.922 多线程[9633:191968] -------- 异步分割线 3 -------
2016-01-13 18:15:20.923 多线程[9633:191968] -------- 分割线 -------
2016-01-13 18:15:20.923 多线程[9633:192006] 异步任务_3
2016-01-13 18:15:20.923 多线程[9633:192005] 异步任务_4
2016-01-13 18:15:22.924 多线程[9633:191968] 同步任务_1
2016-01-13 18:15:22.924 多线程[9633:192071] 异步任务_2
2016-01-13 18:15:22.925 多线程[9633:191968] -------- 同步分割线 1 -------
2016-01-13 18:15:22.925 多线程[9633:191968] 同步任务_2
2016-01-13 18:15:22.925 多线程[9633:191968] -------- 同步分割线 2 -------
2016-01-13 18:15:22.926 多线程[9633:191968] 同步任务_3
*/
dispatch_async(queue, ^{
NSLog(@"异步任务_1");
});
NSLog(@"-------- 异步分割线 1 -------");
dispatch_async(queue, ^{
sleep(3);
NSLog(@"异步任务_2");
});
NSLog(@"-------- 异步分割线 2 -------");
dispatch_async(queue, ^{
NSLog(@"异步任务_3");
});
NSLog(@"-------- 异步分割线 3 -------");
dispatch_async(queue, ^{
NSLog(@"异步任务_4");
});
NSLog(@"-------- 分割线 -------");
dispatch_sync(queue, ^{
sleep(2);
NSLog(@"同步任务_1");
});
NSLog(@"-------- 同步分割线 1 -------");
dispatch_sync(queue, ^{
NSLog(@"同步任务_2");
});
NSLog(@"-------- 同步分割线 2 -------");
dispatch_sync(queue, ^{
NSLog(@"同步任务_3");
});
GCD自定义的队列 和 全局队列的区别
最新推荐文章于 2024-09-25 18:23:28 发布