我有一个NSMutableSet
个对象,我在主线程的几个点上发生变异。有时会在后台线程上枚举此集合。如果没有使用一堆布尔值来管理状态,是否有一个很好的方法可以使任何突变等待,如果该集合当前是枚举的吗?
提前致谢。
答案 0 :(得分:1)
NSMutableSet
不是线程安全的。你不能破解它是线程安全的。
如果你想要一个不会在后台变异检查的副本,那么在主队列上取一个copy
并将其传回去。它会比任何其他方法快得多。
否则,您必须在互斥锁中包含对它的所有访问。 @synchronize
设置本身将是最直接的方式。