gpt4 book ai didi

thread-safety - GCD 是否保证在同一个队列中工作的所有 block 总是在同一个线程中工作?(关于 ABAddressBookRef)

转载 作者:行者123 更新时间:2023-12-02 06:22:23 25 4
gpt4 key购买 nike

GCD 是否确保在同一队列中工作的所有 block 始终在同一线程中工作?

如果我创建一个调度队列并向该队列发送 dispath_async block ,是否所有调度到该队列的 block 都在同一个线程中工作?

由于我正在做一个使用 ABAdrressbook Framerowk 的项目,并且文档中说 ABAddressBookRef 和 A​​BRecordRef 不能在线程之间使用,所以我想知道队列中的所有 block 是否都在同一个线程中,我可以创建该队列只有一个 AddressBookRef。

最佳答案

绑定(bind)到特定线程的唯一队列是主队列,它绑定(bind)到主 (UI) 线程。

如果唯一的要求不是并发访问对象,那么使用串行队列应该没问题。

如果对象依赖于线程本地状态,则必须将所有操作强制到特定线程。最简单的方法是将你的串行队列定位到主线程,但这只有在你知道你不会在 block 中停留太久的情况下才有效;否则,您将挂起您的 UI。在这种情况下,您必须创建自己的处理程序线程并将工作发送到那里。

关于thread-safety - GCD 是否保证在同一个队列中工作的所有 block 总是在同一个线程中工作?(关于 ABAddressBookRef),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6992349/

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