小编sor*_*bro的帖子

与C ++中的Ada子类型等效

C ++是否提供类似于Ada的subtype类型来缩小类型?

例如:

type Weekday is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
subtype Working_Day is Weekday range Monday .. Friday;
Run Code Online (Sandbox Code Playgroud)

c++ language-comparisons ada

15
推荐指数
2
解决办法
443
查看次数

C++ 中递增和递减全局变量时的竞争条件

我发现了一个竞争条件的例子,我可以g++在 Linux 下重现它。我不明白的是,在此示例中操作顺序有何影响。

int va = 0;

void fa() {
    for (int i = 0; i < 10000; ++i)
        ++va;
}

void fb() {
    for (int i = 0; i < 10000; ++i)
        --va;
}

int main() {
    std::thread a(fa);
    std::thread b(fb);
    a.join();
    b.join();
    std::cout << va;
}
Run Code Online (Sandbox Code Playgroud)

我可以理解,如果我使用过,则顺序很重要,va = va + 1;因为 RHSva可能会在返回指定的 LHS 之前发生更改va。有人可以澄清一下吗?

c++ concurrency race-condition

0
推荐指数
1
解决办法
2914
查看次数