多线程之GCD

//GCD最主要的的就是任务和队列
//任务:同步和异步,同步和异步的区别在于开不开线程
//队列:串行队列(依次执行)和并行(同时执行)
//同步任务
dispatch_sync(dispatch_queue_t,^(void)block);
//异步任务
dispatch_async(dispatch_queue_t queue,^(void)block);
//主队列,不允许在主线程中提交同步任务,否则会死循环
dispatch_queue_t mainQueue=dispatch_get_main_queue;
//同步:会卡死
//异步:不会开线程,顺序执行
//全局并发队列
dispatch_queue_t globalQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
//同步:会开线程,并且顺序执行
//异步:不会开线程,乱序执行
//自定义串行队列
dispatch_queue_t SerialQueue=dispatch_queue_create("duoduo",NULL);
//同步:不会开线程,顺序执行
//异步:会开线程,顺序执行
//自定义并行队列
dispatch_queue_t concurrent=dispatch_queue_create("duoduo",DISPATCH_QUEUE_CONCURRENT);
//同步:不会开线程,顺序执行
//异步:开线程,乱序执行
//线程之间的通讯方式
//主队列
dispatch_queue_t mainQueue=dispatch_get_main_queue();
//全局并发队列
dispatch_queue_t globalQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_async(globalQueue,^{
NSURL *url=[NSURL URLWithString:@""];
NSData *data=[NSData alloc]initWithContentOfURL:ute];
dispatch_async(mainQueue,^{
//在这里刷新UI

});

});

你可能感兴趣的:(多线程之GCD)