【问题标题】:Thread race conditions线程竞争条件
【发布时间】:2013-10-26 13:38:40
【问题描述】:

我有两个线程同时运行的算法

n = 0

int tmp

do 10 times

    tmp = n
    n = tmp + 1

我知道这可以得到20,并且每个线程依次执行到最后可以得到10,并且一个线程将n加载到tmp中,然后另一个完成将导致10。

我只是不确定这是否可以得到 2。

【问题讨论】:

  • 比如,那是什么伪语言? w.r.t 对于线程,您必须首先定义这些变量的范围?不保证 ntmp 将是 20 和 10。

标签: multithreading thread-safety race-condition


【解决方案1】:

我会说 n 将 >= 10 和 错误,我甚至不知道我为什么要回答:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2021-06-04
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多