gpt4 book ai didi

c++ - 如何安全地迭代互锁列表?

转载 作者:可可西里 更新时间:2023-11-01 11:26:52 26 4
gpt4 key购买 nike

我们有存储在互锁单链表中的线程之间共享的数据。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684121(v=vs.85).aspx

我们知道列表在初始化后不会改变,但我们希望各个线程能够迭代并读取列表的内容。有没有一种安全的方法来读取/迭代 slist?

当前代码使用 InterlockedFlushSList 从列表中取出节点,然后制作数据的临时拷贝,然后将节点放回 slist。如果 slist 在线程之间共享,则似乎是等待发生的竞争条件。

如果不使用不同的线程安全结构,是否有一种安全的方法来读取迭代 slist?

最佳答案

在多线程环境中读取任何列表都是安全的,前提是列表在读取时没有被修改。您甚至不需要“互锁”列表。

关于c++ - 如何安全地迭代互锁列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33174017/

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