首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift是否有任何并发安全保证?

Swift是否有任何并发安全保证?
EN

Stack Overflow用户
提问于 2019-08-17 02:51:26
回答 1查看 80关注 0票数 0

swift有没有像Rust的数据竞争保证那样的并发安全保证,或者像样的函数并发支持?

EN

回答 1

Stack Overflow用户

发布于 2019-08-17 04:50:29

在使用普通块时,没有任何swift没有这些被授权者,所以你需要自己实现一个锁定机制,以保证数据完整性并自己解决竞争条件。

这是一个示例代码,您可以在游乐场中亲自尝试,您可以看到结果符合循环外的任何预期输出,因为两个队列可以互换地使用相同的资源。希望这能帮上忙。

代码语言:javascript
复制
import Cocoa

var x = 1

let q1 = DispatchQueue(label: "FirstQueue")
let q2 = DispatchQueue(label: "SecondQueue")

q1.async {
    for i in 0...999 {
        print("First Queue working \(Thread.current)")
        x += 1
    }
    print(x)
}

q2.async {
    for i in 0...999 {
        print("Second queue working \(Thread.current)")
        x -= 1
    }
    print(x)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57529740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档