Objective c 条件与信号量,什么';什么更客观?

Objective c 条件与信号量,什么';什么更客观?,objective-c,ios,thread-safety,Objective C,Ios,Thread Safety,我很确定我理解了NSCondition和信号量之间的区别(来自c api)。 苹果开发者,尤其是iPhone开发者,更常使用哪一种?以我的经验,“两者都不是”。不管出于什么原因,信号灯的使用还不足以让人气竞赛产生重大影响 不过,我非常喜欢dispatch_信号灯。非常聪明的实现。以我的经验,“两者都不是”。不管出于什么原因,信号灯的使用还不足以让人气竞赛产生重大影响 不过,我非常喜欢dispatch_信号灯。非常聪明的实现。调度信号灯是肯定的 同步对资源的并发访问的objc方法是避免锁定或@sy

我很确定我理解了NSCondition和信号量之间的区别(来自c api)。 苹果开发者,尤其是iPhone开发者,更常使用哪一种?

以我的经验,“两者都不是”。不管出于什么原因,信号灯的使用还不足以让人气竞赛产生重大影响

不过,我非常喜欢dispatch_信号灯。非常聪明的实现。

以我的经验,“两者都不是”。不管出于什么原因,信号灯的使用还不足以让人气竞赛产生重大影响


不过,我非常喜欢dispatch_信号灯。非常聪明的实现。

调度信号灯是肯定的

同步对资源的并发访问的objc方法是避免锁定或@syncronize(如果可能),并使用队列、串行或并发(ios5>)

如果多个线程需要访问一个共享资源,它们可以分派到一个公共串行队列。通过以这种方式访问资源,我们避免了无内核陷阱的并发访问

例如,当多个线程可以同时访问一个资源进行读取时,可以使用并发队列(我认为在wwdc11视频中显示了这一点),但我们需要一个同步点进行写入。这可以通过使用障碍轻松实现:写入线程将等待所有读卡器完成,将以独占方式在并发队列上写入资源,然后,concurrents读卡器可以再次访问资源


我认为这对于以objc方式进行多线程处理来说是一个很好的资源

dispatch\u信号量

同步对资源的并发访问的objc方法是避免锁定或@syncronize(如果可能),并使用队列、串行或并发(ios5>)

如果多个线程需要访问一个共享资源,它们可以分派到一个公共串行队列。通过以这种方式访问资源,我们避免了无内核陷阱的并发访问

例如,当多个线程可以同时访问一个资源进行读取时,可以使用并发队列(我认为在wwdc11视频中显示了这一点),但我们需要一个同步点进行写入。这可以通过使用障碍轻松实现:写入线程将等待所有读卡器完成,将以独占方式在并发队列上写入资源,然后,concurrents读卡器可以再次访问资源


我认为这是以objc方式进行多线程处理的一个很好的资源

我想以NS开头的任何对象都更常见,特别是因为这些对象将被创建为更好地与Objective-C生态系统中的其他对象共存…我想以NS开头的任何对象都更常见,特别是由于这些对象将被创建为更好地与Objective-C生态系统中的其他对象共存…+1,我想说的是“大多数iPhone根本不知道这些是什么”。)+我想说的是,“大多数iPhone根本不知道这些是什么。”)