Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何在Swift中创建volatile boolean?_Multithreading_Swift_Atomic - Fatal编程技术网

Multithreading 如何在Swift中创建volatile boolean?

Multithreading 如何在Swift中创建volatile boolean?,multithreading,swift,atomic,Multithreading,Swift,Atomic,我想在后台执行一些任务,并添加取消任务的功能 比如: while !isCanceled && someOtherCondition() { doSome() } 并从另一个线程取消任务: func cancel() { isCanceled = true } 在Java中,我可以声明isCancelled volatile,这就足够了。我怎样才能用Swift做到这一点呢?似乎这就是你的答案: 斯威夫特还没有一个定义良好的记忆模型,所以没有 C的挥发性的直接等

我想在后台执行一些任务,并添加取消任务的功能

比如:

while !isCanceled && someOtherCondition() {
    doSome()
}
并从另一个线程取消任务:

func cancel() {
    isCanceled = true
}

在Java中,我可以声明isCancelled volatile,这就足够了。我怎样才能用Swift做到这一点呢?

似乎这就是你的答案:

斯威夫特还没有一个定义良好的记忆模型,所以没有 C的挥发性的直接等价物。话虽如此,C没有一个 在C11之前都有定义良好的内存模型,所以可以走很长的路 没有


可能是相关的。这里也可能是对Q的注释:为什么不使用委托?请注意<代码> Value不意味着“代码>原子< /代码>,不应该假设在C或C++中赋予线程安全性,而应该使用SWIFT尚未实现的实际语言水平。“任务”,你不使用的原因是什么?