dispatch_sync(ConcurrentQueue,^{}) 的疑惑
来源:8-2 dispatch_barrier_async()函数相关面试问题

慕侠2159859
2018-11-25
老师,看你视频说,以同步到并发队列方式才能保证同时有多个线程在读,可是我在我自己写的demo里发现:
for (int j = 0; j<10000; j++) {
dispatch_sync(_queue, ^{
NSLog(@“当前线程为%@=== %d”,[NSThread currentThread],j);
});
}
打印出来的线程都是同一个线程啊,并没有触发出多线程啊?
而上述代码换成dispatch_async 执行打印内容才触发出多线程。那多读岂不是应该用的是dispatch_async(ConcurrentQueue,^{})才对?
或者老师是否再讲述下 线程 和 同步/异步执行,串行/并行队列之间的关系?感觉大多数人都有我这个概念疑惑,谢谢老师!
写回答
1回答
-
同步方式栅栏调用会并发执行 指的是在不同的线程里进行同步到并发队列上进行栅栏调用 通过这种方式调用的各个线程间实现并发
你的例子所有同步调用都发生在同一个线程 打印出来的当然是在同一个线程啦132019-04-23
相似问题