小编use*_*384的帖子

是否在线程原子操作中递增并返回一个整数?

考虑以下posix线程代码:

void *thr(void *arg)
{
    static int i = 0;

    return ++i;
}
Run Code Online (Sandbox Code Playgroud)

我认为这是原子安全的操作,因为它应该转换为汇编指令inc i以改变价值.但是,我不是cpu和多线程内部的伟大专家,因此我很怀疑.

编辑:因为它不安全所以说我使用互斥锁来使这个安全,然后在时间方面需要多少额外费用.编辑:我从pthread互斥量的开销得到我的回答时间成本.谢谢一堆.

c multithreading atomic

-3
推荐指数
1
解决办法
290
查看次数

标签 统计

atomic ×1

c ×1

multithreading ×1