iOS:对GCD中 同步、异步、并行、串行的见解
1、GCD-同步执行多线程时 GCD中不管向什么类型的队列加同步任务,实际上都会加到当前线程中(一般为主线程)。 2、GCD-异步执行多线程时 GCD中不管向什么类型的队列加同步任务,实际上都会加到新开辟的新线程中(不是主线程)。 举例如下:通过演示线程地址来佐证上述观点....... 情况一:GCD-同步 GCD中向并行队列加同步任务,实际上都会加到当前线程中。 //当前主线程 NSLog(@"当前线程:%@",[NSThread currentThread]);//获取一个全局的并行队列 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); //同步添加任务 dispatch_sync(queue, ^{ NSLog(@"任务1,当前线程:%@",[NSThread currentThread]); }); dispatch_sync(queue, ^{ NSLog(@"任务2,当前线程:%@",[NSThread currentThread]...



