【发布时间】:2011-08-04 16:44:00
【问题描述】:
有谁知道是否可以在 Haskell 中进行无锁编程?我感兴趣的问题是适当的低级原语是否可用,以及(如果有的话)关于在纯功能上下文中使用这些原语构建工作的大规模系统的任何信息。 (我以前从未在纯函数上下文中进行过无锁编程。)例如,据我了解,Control.Concurrent.Chan 通道是建立在 MVar 之上的,它(据我所知)使用锁—— -原则上可以构建内部无锁的Chan原语版本吗?希望获得多少性能提升?
我还应该说我熟悉 TVar 的存在,但不了解它们的内部实现 --- 我已经了解它们大多是无锁的,但我不确定它们是否完全无锁。因此,任何有关 TVar 内部实现的信息也会有所帮助!
(This thread 提供了一些讨论,但我想知道是否有任何更新/更全面的内容。)
【问题讨论】: