代码之家  ›  专栏  ›  技术社区  ›  Di Wang

单处理器环境可以防止竞争条件吗?

  •  4
  • Di Wang  · 技术社区  · 7 年前

    当多个处理器工作时,这些进程同时工作。当多个线程访问某个公共数据区域时,会发生争用情况,其中一个线程可能会覆盖另一个值。

    请帮我澄清这一困惑,谢谢。

    1 回复  |  直到 7 年前
        1
  •  9
  •   Ameya    7 年前

    在单处理器环境中可能会发生竞争情况。根据Wiki Race Condition 发生时 output is dependent on the sequence or timing of other uncontrollable events

    单处理器环境可以支持不同进程的同一进程的多个线程,这些线程可能正在等待另一个线程在资源上生成。死锁也可能发生在单处理器环境中。

    脚本:

    • T1:希望将员工记录添加到文件“employee.txt”
    • T3:想解雇离开的员工

    time=0 并提交给单处理器,它将决定哪个线程先执行,第二个,依此类推。线程的优先级和生成顺序在不同的平台、场景等上有所不同。 因此T2和T4可能不会给出一致的结果 .