您的位置:首页 > 移动开发 > IOS开发

多线程GCD(二)

2016-02-23 10:43 274 查看
多线程GCD

——一.线程间的通信

线程间的通信指的是从一个线程回到另一个线程的过程,在开发中基本上是从子线程回到主线程,在子线程中做一些耗时的操作,然后回到主线程刷新界面。

dispatch_queue_t queue =dispatch_queue_create("I love you", DISPATCH_QUEUE_CONCURRENT);

dispatch_async(queue, ^{

//处理耗时操作

dispatch_async(dispatch_get_main_queue(), ^{

//回到主线程,刷新UI

});

});


二:在开发过程中,会有这样一种需求,等几个耗时操作完成之后,我们才能做另一些事情。

dispatch_group_t group =  dispatch_group_create();
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 执行耗时操作
});
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 执行耗时操作
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
// 等前面的异步操作都执行完后,回到主线程...
//如果不想回到主线程,可以把该函数的队列换成全局对列。
});


关于GCD里面的内容很多,以后有时间我们再探讨GCD比较更高级的用法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 iOS多线程