Ahm*_*gle 6 c# collections generic-collections concurrent-collections
System.Collections.Queueclass具有Queue.Synchronized返回线程安全的Queue实现的方法.
但是通用的,System.Collections.Generic.Queue 没有Synchronized方法.在这一点上,我有两个问题:
Queue.Synchronized与ConcurrentQueue<T>类不同?谢谢.
SLa*_*aks 13
该Synchronized()方法返回一个包装器队列,该队列绕每个方法锁定一个锁.
在编写多线程应用程序时,此模式实际上并不实用.
大多数现实世界的使用模式都不会对同步集合有益; 他们仍然需要锁定更高级别的操作.
因此,这些Synchronized()方法System.Collections实际上是一个引导人们编写非线程安全代码的陷阱.
的ConcurrentQueue<T>类是专门为并发的应用程序设计的,并含有有用的方法的是原子修改队列.
并发集合包仅包含在多线程环境中使用的有意义的方法(例如TryDequeue()); 它们将指导您编写实际上是线程安全的代码.
这被称为成功的关键.
有关更多信息,请参阅我的博客
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |