c# - Queue<T> 线程安全 : one writer, 一个读者

标签 c# .net multithreading .net-4.0 queue

我有一个 Queue<T> _q = new Queue<T>();

总是只有一个线程填充它:_q.Enqueue(msg);

总是只有一个线程使用它:_q.Dequeue();

我想在两个线程中都是无锁的。性能很重要,但安全是第一位的。

我需要制作 _q一个ConcurrentQueue<T>

UPD 这可能很重要: 我不需要确保读取线程会在写入线程将其排入队列后立即成功将其出列。如果几个false出队将被采取 - 没关系。

最佳答案

Do I need making _q a ConcurrentQueue

是的。队列不是线程安全的。

关于c# - Queue<T> 线程安全 : one writer, 一个读者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17420652/

相关文章:

c# - 类型为 "xxx"的对象无法转换为类型 "yyy"

c# - 在 .net 中以编程方式解压缩文件

c# - 文字书写动画像word 2013

vb.net - 可以将其线程化以更快地运行吗?

c# - 使用 ReactiveUI、Observables、SubscribeOn 和 ObserveOn 在长时间运行的过程中在 UI 中显示输出日志

c - 如何在单个CPU的多个CPU核心而不是多个CPU上设置亲和性?

c# - 全局抑制 c# 编译器警告

c# - 读取 JSON 对象

c# - 异常使用 GetFunctionPointerForDelegate : "The specified Type must not be a generic type definition. "

c# - 在新行中打印字符串 (C#)