在Objective-C中,一个类似于
[mySet member:candidate]
发送名为
member:
到
mySet
(接受者)与论据
candidate
. 它通常被称为方法调用或仅仅是调用,但是
itâs more properly called âsending a messageâ
或者是一个E-YY消息,发送一个O.*,因为在一个Objto-C消息发送中,比像C++或Java这样的更通用语言的方法调用有更多的机器(和定制的机会)。
所以是的,当书上说“再发一次信息”时,意思是
[mySet成员:候选人]
再一次。我没看过这本书,但你的话描述的是双重检查锁定模式。
然而,这本书所描述的是
不够
如果你要进入相同的比赛环境
NSMutableSet
从多个线程(如果您只访问
不可变集
从一根线)。问题是,如果你说
[mySet addObject:newMember]
在线程A上,它是
不安全
进入
mySet公司
在执行
addObject:
方法,该集合可能处于内部不一致状态,可能(例如)导致
成员:
调用另一个线程崩溃。你必须锁上
阅读
访问
mySet公司
除了写访问,所以双重检查的锁定模式对于共享
不可变集
穿过线。
处理这个问题的最好方法是使用
dispatch_queue_t
管理对
不可变集
,除非探查器告诉您这是一个瓶颈,否则不要担心任何更复杂的问题。