我正在使用 Macruby 进行此操作,但我认为这在这里并不重要。
我有一个将其状态存储在字典数据结构中的模型。我希望并发操作偶尔更新这个数据结构。在我看来,GCD 提供了一些可能的解决方案,包括这两个:
- 将访问数据结构的任何代码包装在发送到某个串行队列的块中
- 使用 GCD 信号量,客户端代码在访问结构时根据需要发送等待/信号调用
当第一个解决方案中的队列被同步调用时,它看起来几乎等同于信号量解决方案。这些解决方案中的任何一个是否具有我所缺少的明显优势?我错过了更好的选择吗?
另外:用 GCD 实现读写(共享独占)锁会很简单吗?