从async和sync的字面上区分,async是异步的简称,sync是同步的简称。1、dispatch_async意味着异步处理,主程序不会等待block块执行结果。int main(int argc, const char * argv[]) { dispatch_queue_t queue...
分类:
编程语言 时间:
2015-12-22 21:16:10
阅读次数:
412
- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"1"); dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"2"); }); NSLog(@"3");}会输出什么,为什么答:输...
分类:
编程语言 时间:
2015-12-16 15:25:43
阅读次数:
188
GCD的基本使用:- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // dispatch_sync : 同步,不具备开启线程的能力 // dispatch_async : 异步,具备开启线程的能力 ...
分类:
其他好文 时间:
2015-10-30 20:26:27
阅读次数:
171
web前端开发与iOS终端开发的异同iOS8多语言备选规则慎重使用dispatch_sync 死锁就是说,这段代码是在主线程(viewdidload)中添加的,主线程执行到这里的时候,开始执行block的task,他就会阻塞主线程,直到queue完成了你给的task, 但queue要完成你给的tas...
分类:
移动开发 时间:
2015-10-16 14:58:31
阅读次数:
229
说明:针对的FMDB版本为2.5,未作修改。inDatabase, inTransaction中为dispatch_sync(_queue, ^() { }操作。_queue = dispatch_queue_create([[NSString stringWithFormat:@"fmdb.%@"...
分类:
数据库 时间:
2015-09-07 11:02:34
阅读次数:
1141
#import "ViewController.h"
@interface ViewController ()
@end
/**
*
1.GCD底层也是用线程来实现的
2.GCD有两种执行任务的方式
01.同步dispatch_sync(避免在主线程中使用同步执行主线程任务容易死锁)
02....
分类:
编程语言 时间:
2015-08-30 12:56:41
阅读次数:
150
示例:一个标准的死锁- (void)viewDidLoad{[super viewDidLoad];dispatch_sync(dispatch_get_main_queue(), ^{});}dispatch_sync(queue, block) 做了两件事情将 block 添加到queue队列;...
分类:
其他好文 时间:
2015-07-28 18:20:41
阅读次数:
89
为什么要写这个系列,因为百度了一下,找了很多都是些片面的Blog,拷贝来拷贝去的,写的也很粗糙。 所以,我要写这个系列,尽量把官网文档中GCD的强大功能完整的表达出来。方便自己,也方便别人,如果发现有问题,...
分类:
其他好文 时间:
2015-07-26 21:07:52
阅读次数:
144
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_sync(queue, ^{/* a task */});After the dispatch_sync f...
分类:
其他好文 时间:
2015-07-09 19:37:25
阅读次数:
94
1:
- (void)viewDidLoad {
//dispatch_sync(dispatch_get_main_queue(), ^{
//NSLog(@"3");
//死锁原因
//1:dispatch_sync在等待block语句执行完成,而block语句需要在主线程里执行,所以dispatch_sync如果在主线程调用就会造...
分类:
移动开发 时间:
2015-07-06 16:14:22
阅读次数:
253