如果只有一个线程要添加到队列中,并且只有一个线程要从队列中检索,我认为没有必要为这些访问操作锁定队列.
通常,检索将处于循环中.如果它错过了一个项目,它将在下一次尝试中获得它.唯一关心的是得到部分数据.如果它是值类型队列并且该值大于一个基本内存单元,则可能发生.但如果它是一个参考类型,它应该没问题.
我对吗?
假设你在谈论Queue<T>.
只要正在写入的线程和正在读取的线程是相同的线程,则不需要锁定.如果它们是不同的线程,则确实需要锁定.文档明确指出,如果不同线程上有读者和编写者,则需要锁定
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |