+ (MyHandle *)sharedMyHandle
{
// 在GCD中只执行一次,用于记录内容是否执行过
static dispatch_once_t onceToken;
// 保证多线程并发执行时只执行一次
dispatch_once(&onceToken, ^{
handle = [[MyHandle alloc] init];
});
return handle;
}
// async 不等 block 体执行完。。就去执行下面的代码
// sync会等待 block 体执行完成之后,才会去执行 block 体外面的代码
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_sync(queue, ^{
NSLog(@"第一个任务");
});
NSLog(@"呵呵");
dispatch_sync(queue, ^{
NSLog(@"第二个任务");
});
NSLog(@"哈哈");
// 函数
void function(void * str){
NSLog(@"这是一个函数,%s",str);
}
// 第一个参数:队列
// 第二个参数:函数参数的内容
// 第三个参数:函数
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async_f(queue, @"passValue", function);