【发布时间】:2018-02-20 12:15:55
【问题描述】:
我在多个线程之间有一个共享内存。我想阻止这些线程同时访问这块内存。 (如生产者-消费者问题)
问题:
一个线程将元素添加到队列中,另一个线程读取这些元素并删除它们。他们不应该同时访问队列。
解决此问题的一种方法是使用 Mutex。
我发现,Swift 中没有 Mutex。 Swift 中是否有替代方案?
【问题讨论】:
-
我想你可以找 Grand Central Dispatch 看看这个:raywenderlich.com/148513/…
-
使用
Dispatch Queue可以解决这类问题。 -
@rmaddy 我编辑了我的问题。是的,我想这样做。
-
请参阅stackoverflow.com/questions/45710200/… 了解一些想法。
-
您可以使用调度信号量。用 1 初始化,并在访问信号量之前/之后等待/发出信号。
标签: ios swift swift3 concurrency mutual-exclusion