代理属性的原子性,如NSURLConnectionDelegate

时间:2013-08-31 17:55:35

标签: objective-c thread-safety delegation

如果有更多的并发连接,并且当连接达到特定状态时被调用的方法访问属性,那么atomic(NSURLConnectionDelegate)中的属性是NSURLConnectionDataDelegate吗? 其他线程无法访问我调用的那些属性。

1 个答案:

答案 0 :(得分:1)

NSURLConnection的并发性是基于运行循环的,因此只要您的对象是委托的所有连接都是从同一个运行循环启动的,您就不必担心并发性了。你的代表。如果在不同的运行循环上启动多个连接,那么是的,您需要保护委托对象的私有状态。原子属性很少足够。

简而言之,您要么不需要担心这一点,要么原子属性不太可能有所帮助。一个简单的选择是将所有委托方法dispatch_async用于私有串行GCD队列。