Jim*_*ffa 36 haskell shared-memory stm
我觉得TVar很容易使用,即使MVar看起来更简单一些,而TVar更有特色.
所以我的问题很简单,我想要什么条件去MVar而不是TVar?我想任何时候我都不需要事务更新我可以使用一个MVar,但这对我有什么好处?
Don*_*art 36
电视更安全但速度更慢.
MVars可以死锁,但效率更高.
更高效的仍然是IORef和atomicModifyIORef(CAS),但那是在高度,你可以用它做什么限制.
这实际上是对性能权衡的安全性.TVars非常通用,非常安全.其他一切都不那么严重,规模越来越小.
cdk*_*cdk 36
无功
TVar某些情况下更快的TVar
IOREF
IO写入/更新TVar什么时候使用MVar或没有真正的硬性规则TVar.如果我正在守卫的资源将"失踪"(而不是空,考虑Nothingvs Just mempty),那么MVar通常是最有意义的.如果我需要对资源执行原子块修改,那么TVar最合适.