gpt4 book ai didi

c++ - 具有::InterlockedIncrement 的唯一 ID (VC++)

转载 作者:太空狗 更新时间:2023-10-29 20:46:55 24 4
gpt4 key购买 nike

用VC++,得到一个向上计数的唯一ID,我想知道这在多线程应用程序中是否合法?

uint32_t GetNewId() { return ::InterlockedIncrement(&lastId); }

基本上,我想知道 InterlockedIncrement 是否只保护增量,或者返回值是否也防止竞争条件?

最佳答案

是的,这是合法的——访问权限包括

  • 然后阅读
  • 递增,然后
  • 然后写
  • 将增加的值返回给调用者

将是原子的。只是不要忘记它是 32 位的并且会溢出。

关于c++ - 具有::InterlockedIncrement 的唯一 ID (VC++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com