stm:Go中的软件事务存储
文件大小: 10k
源码售价: 10 个金币 积分规则     积分充值
资源说明:stm 该软件包不再维护。 请参阅以获取维护的前叉。 软件包stm为Go提供了操作。 这是编写并发代码(通道和互斥锁)的标准方法的替代方法。 STM使得以原子方式执行任意复杂的操作变得容易。 与传统锁定相比,它的主要优势之一是STM事务是可组合的,而锁定功能则不是-组合将死锁或释放功能之间的锁定(使其成为非原子的)。 stm API试图模仿Haskell的 ,但是由于Go的类型系统,这不可能完全实现。 我们被迫使用interface{}并输入断言。 此外,Haskell可以在编译时强制不在STM monad之外修改STM变量。 在Go中这是不可能的,因此在STM代码中使用指针时要格外小心。 另一个重要的偏离是stm.Atomically不返回值。 这会稍微缩短事务代码,但我不是100%正确的决定。 (替代方法是让每个事务处理函数返回一个interface{} 。) 与Haskell不
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。