首页 > 试题广场 >

下面关于GCD正确的有()

[不定项选择题]
下面关于GCD正确的有()
  • dispatch_queue_t mainQueue = dispatch_get_main_queue();
    dispatch_sync(mainQueue,^{
    NSLog(@"2");
    });
    NSLog(@"1");
    运行结果:1
    2
  • dispatch_queue_t mainQueue = dispatch_get_main_queue();
    dispatch_async(mainQueue,^{
    NSLog(@"2");
    });
    NSLog(@"1");
    运行结果:1
    2
  • GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行。
  • The main queue(主线程串行队列),dispatch_sync 同步执行任务函数,不会开启新的线程,dispatch_async 异步执行任务函数,会开启新的线程。
dispatch_async不一定开启新线程,只有在并发队列或者是手动创建的串行队列才会开启新的线程,在主队列不会开启新的线程
发表于 2020-01-21 10:24:25 回复(0)

主线程异步并不会开辟新的线程

发表于 2019-08-20 15:16:13 回复(0)
dispatch_async不一定开启新线程,比如async到main,就不会开启新线程
发表于 2019-03-26 18:10:19 回复(1)
选项A 
在 dispatch_sync 这一行报错 
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)  

选项B 
async 的代码不会执行。 
dispatch_async(mainQueue,^{     
    NSLog(@"2"); 
});  
编辑于 2021-07-30 11:21:33 回复(0)