【发布时间】:2011-08-10 15:26:05
【问题描述】:
苹果说:
重要提示:ABAddressBookRef 的实例不能被多个使用 线程。每个线程都必须创建自己的实例。
但是为什么呢?
我知道某些特定的类或操作必须在主线程中完成。
而且我知道有些对象不是线程安全的(这意味着如果这些对象同时被两个不同的线程访问会导致问题)。
但是,如果你能确保线程不安全的对象在任何时候都只能被一个线程访问,那么应该没有问题。
到目前为止我理解正确吗?
我不明白的是,为什么需要为每个线程创建一些像 ABAddressbookRef 这样的对象?苹果为什么会这样说?如果只是它是线程不安全的,Apple 可以说它是线程不安全的,处理时要小心。但是为什么需要为每个线程创建一个呢?有什么我不知道的原因吗?
ABAddressbookRef 的实现是否依赖于创建它的线程?
PS:我记得 Core Data 还说需要为每个使用它的线程创建 ManagedObjectContext。
【问题讨论】:
标签: ios thread-safety abaddressbook