我有一个控制一些资源的功能,例如:
var resource: Int?
func changeSomeResources() {
resource = 1
// rewriting keychain parameters
// working with UIApplication.shared
}
Run Code Online (Sandbox Code Playgroud)
然后我多次将此函数添加到全局线程
DispatchQueue.global(qos: .userInitiated).async {
changeSomeResources()
}
DispatchQueue.global(qos: .userInitiated).async {
changeSomeResources()
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,除了竞争条件之外,我是否会遇到一些线程问题?例如,如果两个函数将尝试同时更改资源