gpt4 book ai didi

concurrency - Swift 3 中的 dispatch_barrier_async 等效项

转载 作者:行者123 更新时间:2023-12-03 19:13:52 24 4
gpt4 key购买 nike

重构同事的代码,我正在寻找等效的 dispatch_barrier_async在swift 3.里面有很多队列在玩,他的设计就是只阻塞这个队列,并且只针对这个单一的操作。

// Swift 2.3
func subscribe(subscriber: DaoDelegate) {
dispatch_barrier_async(self.subscribers.q) { // NOTE: barrier, requires exclusive access for write
//...
}
}

// Swift 3
func subscribe(subscriber: DaoDelegate) {
(self.subscribers.q).async { // (Not equivalent, no barrier on the concurrent queue)
//...
}
}

我可以在不重构所有队列类型的情况下在 Swift 3 中保留相同的功能吗?

最佳答案

async()方法有一个 flags接受 .barrier 的参数
选项:

func subscribe(subscriber: DaoDelegate) {
(self.subscribers.q).async(flags: .barrier) {
//...
}
}

关于concurrency - Swift 3 中的 dispatch_barrier_async 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38084482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com