【发布时间】:2025-12-18 13:10:01
【问题描述】:
假设我有两个线程 A 和 B,它们都在递增 ~global~ 变量“count”。每个线程都运行一个类似这样的 for 循环:
for(int i=0; i<1000; i++)
count++; //alternatively, count = count + 1;
即每个线程将 count 递增 1000 次,假设 count 从 0 开始。在这种情况下会出现同步问题吗?或者执行完成后是否正确计数等于 2000?我想既然语句“count = count + 1”可能会分解成两条汇编指令,那么另一个线程有可能在这两条指令之间交换吗?不确定。你怎么看?
【问题讨论】: