我有一个对象的NSMutableSet
,我在主线程上的几个点上进行了突变。虽然有时在后台线程中会枚举此设置。缺少使用一堆布尔值来管理状态的方法,有没有什么好办法让任何突变等待,该集合当前是否应该枚举?
提前致谢。
最佳答案
NSMutableSet
不是线程安全的。您不能破解它以确保线程安全。
如果您希望副本在后台不发生变化以进行检查,请在主队列上使用copy
并将其传递回去。这将比任何其他方法快很多。
否则,您必须将对其的所有访问都包装在互斥锁中。对集合本身进行@synchronize
是最直接的方法。