gpt4 book ai didi

iphone - 当某些东西异步运行时,是否意味着它不在主线程上?

转载 作者:行者123 更新时间:2023-12-01 17:26:39 25 4
gpt4 key购买 nike

我对异步加载和主线程的概念有些困惑。当某些东西被异步加载时,是否意味着它不在主线程上运行?据我所知,这是两个不同的概念,某些内容可以异步在主线程上运行,某些内容也可以异步在后台/辅助线程上运行。如果我错了,请纠正我。

最佳答案

不完全的。异步运行意味着它不会停止在当前线程上继续执行。这是一个重要的区别,因为完全有可能异步执行某项操作,使其最终结束在主线程上(例如:dispatch_async(dispatch_get_main_queue(),^ {some block});),这意味着它不会停止其他操作线程继续执行,但阻塞了主线程。

因为主线程对应用程序非常重要,所以异步代码最常见的用法是避免阻塞它,但这不是唯一的用法。

(已添加)

也许用“关于x的异步”来思考它会更有用。如果执行此操作,例如:

dispatch_async(aSerialQueue, ^{
work();
work();
});

然后,工作的两个调用相对于彼此是同步的,并且相对于aSerialQueue上的所有其他工作都是同步的,而相对于其他所有事物都是异步的。

关于iphone - 当某些东西异步运行时,是否意味着它不在主线程上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com