Thread safe increment of static local variable

前端 未结 2 1480
野的像风
野的像风 2021-01-12 08:13
void foo() {
    static int id = 0;
    const int local_id = id++;
    //do something with local_id;
}

Multiple threads can call foo in parallel mu

2条回答
  •  南笙
    南笙 (楼主)
    2021-01-12 08:23

    Your code is not thread safe because two threads may increment id at the same time.

    Use mutual exclusion or std::atomic for the shared id variable.

提交回复
热议问题