赞
踩
异步: 表示的是任务,任务有同步和异步,异步任务是可以同时执行的,同步反之
队列: 表示的是是否开启多线程.队列有并发和串行,并发里的异步任务是可以同时执行的,串行队列里无论是异步还是同步任务都是依次执行的.
多个任务,如果想要同时执行,那么需要两个条件,一是设为异步,表示该任务可以同时执行.还需要加入到队列当中.
队列有全局队列和主队列,全局队列表示可以开辟多个线程,来供异步任务同时执行,而主队列只能让异步任务依次执行,也就无法同时执行了.
so…
我们看两段代码来理解一下:
//这里主要写异步任务+全局队列
for (NSInteger i = 0; i < 10; ++i) {
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSLog(@"%zd -- %@", i, [NSThread currentThread]);
});
}
//输出:
2016-12-21 21:31:41.085 GCD的探索[65996:2385901] 0 -- <NSThread: 0x600000263680>{number = 4, name = (null)}
2016-12-21 21:31:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。