【发布时间】:2016-10-19 08:16:12
【问题描述】:
场景:我写了一大段代码,运行在 2 个并行线程上,它们在代码方面是相同的,只是处理不同的数据。我看到了不确定的结果。如果我禁用 2 个线程之一,结果将变得确定。在这段代码中,我使用了一些静态内联函数(主要原因:它们是我在这里和那里需要的小函数,为此我只是在需要它们的翻译单元中复制代码),我想了解它们是否可能是我的问题的一个原因。
C 中的静态内联函数是线程安全的吗?反过来说,如果它们内部没有静态变量,而只有一些局部变量和输入参数,那么来自 2 个线程的同时调用会导致不可预知的行为吗?
【问题讨论】:
-
不是线程安全的东西是可以改变的。代码不会改变(在正常情况下),但变量经常会。
标签: c multithreading thread-safety