分享两个面试题,可以说下为什么😂

1、
dispatch_queue_t queue = dispatch_queue_create(“test”, DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
sleep(500);
NSLog(@“1”)
});
dispatch_sync(queue, ^{
sleep(300);
NSLog(@“2”);
});
sleep(100)
NSLog(@“3”);

注:补充下,当时对方说了个前提,这个是在主线程里

2、
int a = 1;
int main() {
int b = 2;
static int c = 3
Block block = ^ {
a = 10;
b = 20;
c = 30;
};
a = 100;
b = 200;
c = 300;
block();
NSLog(@“a:%ld”, a);
NSLog(@“b:%ld”, b);
NSLog(@“c:%ld”, c);
}

1 个赞

1
2
3

10
200
30
代码本身就有问题

1 个赞

你想听高级版的还是菜鸡版的

高级版吧:joy:

1 个赞

屎山? :face_with_peeking_eye:

反正出给我的时候很蒙逼

受教了

就是考察你GCD多线程以及block对不同类型变量的捕获行为

1 个赞

我怀疑你在刁难我胖虎 :laughing:

:joy::joy::joy:

第一题考的是死锁的问题吧 都是些基础八股文了