![]() |
1
1
你会问:
i_m不确定i_d是否将它们描述为不同的__类型_,但从应用程序开发人员的角度来看,是的,有专门用于UI、主运行循环等的__main__线程,并且有所有其他线程,与此相反,根据定义,它们是_背景_157;线程。 我们总是要小心运行主队列的内容(即不要在主队列上运行任何可能阻塞该线程并有效阻塞UI的内容)。在实践中,我们希望避免在主队列上做任何可能阻塞它超过几毫秒的事情,最多。
实际上,是的。但我们的设备资源有限,因此开发人员必须明智。例如,对于我们的后台任务,我们希望使用与队列所做的工作相称的QoS。或者,如果将某个任务并行化,那么应该注意限制并发性的程度。但是,如果一个人明智地使用系统资源,并且不断地将任务阻塞在主队列之外,那么这就可以确保一个响应迅速的用户界面。
底线是的,如果您有一些代码会阻塞运行它的线程(例如,它的计算代价很高,它会阻塞诸如信号量或调度组之类的调用)
这些只是服务质量级别,它们只是队列的相对优先级。问题不在于是否阻塞用户界面,而在于GCD如何对资源进行优先级排序和分配。
是的
这不太合理。也许你可以分享这些文件的具体摘录,我们可以帮助你解释他们想说什么。
QoS只是给定队列的优先级和资源问题。串行与并发只是一个问题,一个队列是否一次只限于一个线程,或者在需要和可用时,它是否能够利用多个线程。 |
![]() |
Danil · 种子/填充核心数据的最佳实践?[关闭] 6 月前 |
![]() |
Robin · LazyVGrid项目预计不会击中测试区域 6 月前 |
![]() |
Alex Smith · 移动到下一个视图控制器后如何显示警报? 7 月前 |
![]() |
selcukctn · 如何在react native中制作无限动画? 7 月前 |
![]() |
Nicolas Gimelli · iOS 18远程通信通知不起作用 7 月前 |