Software Transactional Memory,软件事务内存管理(应该是这么翻译的吧T_T)
类似于数据库的事务,所有的操作都有log,最后验证其他线程是否对数据进行修改,要是有那么就回滚。然后继续来
下面是Haskell提供的STM操作。
atomically :: STM a -> IO a retry :: STM a orElse :: STM a -> STM a -> STM a newTVar :: a -> STM (TVar a) readTVar :: TVar a -> STM a writeTVar :: TVar a -> a -> STM ()