赛迪网 > 新闻中心 > 科技时代 > 文章

为任务与线程之间的进一步协调工作提供基元

发布时间:2011.11.23 14:42      来源:赛迪网     作者:小书生

除了用于启动并行化和并发处理的机制之外,.NET Framework 4 还为任务与线程之间的进一步协调工作提供了基元。 这包括一组线程安全且可伸缩的集合类型,这些类型大体消除了开发人员手动同步对共享集合的访问的需要。 ConcurrentQueue 提供一个线程安全、无锁定、先进先出的集合,该集合可以由任意数量的生产者和任意数量的使用者同时使用。

此外,它还支持并发枚举器的快照语义,以便代码即使在其他线程操作实例时也可以检查队列的状态。 ConcurrentStack 也类似,只是它提供后进先出语义。 ConcurrentDictionary 使用无锁定和精细锁定方法提供线程安全的字典,该字典也支持任意数量的并发读取器、写入器和枚举器。 它还提供几个多步骤操作(如 GetOrAdd 和 AddOrUpdate)的原子实现。 另一种类型 ConcurrentBag 提供使用工作窃取队列的无序集合。

[发表评论][打印][进入博客][进入论坛][推荐给朋友]

更多>>