Apple говорит:
mpВажно: экземпляры ABAddressBookRef не могут использоваться несколькими
потоки. Каждый поток должен создать свой собственный экземпляр.
Но почему?
Я знаю, что какой-то определенный класс или операции должны выполняться в главном потоке.
И я знаю, что некоторые объекты не являются поточно-ориентированными (что означает, что это вызовет проблемы, если к этим объектам одновременно будут обращаться два разных потока).
Но, если вы можете быть уверены, что к небезопасным для потока объектам обращается только один поток в любой момент, проблем не должно быть.
Правильно ли я понимаю до сих пор?
Что я не могу понять, так это почему некоторые объекты, такие как ABAddressbookRef, должны создаваться для каждого потока? Почему Apple говорит что-то подобное? Если Apple просто говорит, что она не защищена от потоков, Apple может сказать, что она небезопасна, будьте осторожны при обращении с ней. Но почему существует необходимость создавать по одному для каждого потока? Есть ли причина, по которой я не знаю?
Зависит ли реализация ABAddressbookRef от потока, который его создал?
PS: я помню, что Core Data также говорит, что ManagedObjectContext необходимо создавать для каждого потока, который его использует.