如何在Swift中声明volatile变量

Mit*_*oto 12 swift

我想从Objective-C代码转换为Swift,如下所示;

int sum = 0;
x = 1;
for (int i = 0; i < 100; i++) {
    sum += x;
}
Run Code Online (Sandbox Code Playgroud)

x可以从其他线程访问.所以x被声明为volatile变量.

volatile int x;
Run Code Online (Sandbox Code Playgroud)

我应该如何在Swift中编写这段代码?

Cod*_*aFi 5

目前volatile在 Swift 中没有等效项。

在 Swift 中,您可以使用比volatile关键字更有效的方法来表达值的全局同步性——它不提供任何类型的原子性保证,并且必须与锁一起使用来建立临界区。例如,您可以选择锁来同步对变量的读写访问。您可以选择使用MVar来指示变量在多个线程中应该只有 1 个可能的有效状态。

或者你可能选择简单地不在 Swift 中表达问题。如果您正在寻找volatile变量的确切行为(在您的情况下,这听起来不太可能),请坚持使用 C 和 C++。