unsigned int balance = 100; int T_alipay_withdraw(int amount) { if (balance >= amount) { balance -= amount; return SUCCESS; } else { return FAIL; } }
两个线程并发支付 ¥100 会发生什么 (代码演示)
#define N 100000000 long sum = 0; void T_sum() { for (int i = 0; i < N; i++) sum++; } int main() { create(T_sum); create(T_sum); join(); printf("sum = %ld\n", sum); }
void T_sum() { for (int i = 0; i < 3; i++) { int t = load(sum); t += 1; store(sum, t); } }