gpt4 book ai didi

c# - 这段代码需要什么样的同步?

转载 作者:行者123 更新时间:2023-11-30 17:59:29 25 4
gpt4 key购买 nike

我有一个存储 List<Item> dataList 的线程服务器应用程序.有一个写入线程可以修改、添加和删除列表中的项目,还有多个线程可以从该列表中读取。

需要什么样的同步来确保写入在调用时按顺序发生并为读取提供最大性能,即如果写入很忙,读取必须只提供读取之前的先前值。

我目前使用 ReaderWriterLockSlim因为它具有独立的读取和写入锁定功能,但感觉好像调用 ReadLocks 有很多昂贵的开销,这是不必要的,因为我想要的只是保证按顺序写入?

据我所知,阅读引用类型和值类型应该提供原子访问,因此可能不需要锁定?

性能是一个大问题,我的同步结构的优化似乎可以提高很多。

最佳答案

听起来您有生产者/消费者模式。在 .Net 4 中,有 ConcurrentQueue<T> classSystem.Threading.Concurrent 命名空间中。您仅在从队列中添加和删除时进行同步。

关于c# - 这段代码需要什么样的同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174329/

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