文件名称:stm-in-clojure:元循环 Clojure STM 实现
文件大小:41KB
文件格式:ZIP
更新时间:2024-08-01 16:42:30
Clojure
Clojure 中的 STM 什么? Clojure 中元循环实现(简称 MC-STM)。 为什么? 用于教育目的。 我的目标是让这个 STM 实现让对 Clojure 感兴趣的人能够更好地理解它的 STM 原语( ref 、 deref 、 alter 、 dosync ),尤其是更高级的部分,比如通过commute交换更新和通过ensure防止写倾斜。 概述 MC-STM 用 Clojure 的原子来表示 Clojure 引用。 熟悉 Clojure 的人会认识到,可以通过软件事务以协调的方式更新引用。 另一方面,Clojure 原子仅支持不协调的更新(即给定两个原子,Clojure 不提供对原子更新两个原子的内置支持)。 MC-STM 用 Clojure 原子来表示它的引用,并在顶部构建自己的 STM 支持以提供原子性和隔离性。 为了便于理解,我们开发了一系列版本的元圆形STM
【文件预览】:
stm-in-clojure-master
----stm()
--------v3_mvcc_commute.clj(10KB)
--------v1_simple.clj(6KB)
--------v0_native.clj(2KB)
--------v5_mvcc_fine_grained_barging.clj(16KB)
--------RetryEx.clj(2KB)
--------v4_mvcc_fine_grained.clj(11KB)
--------v2_mvcc.clj(8KB)
----LICENSE(2KB)
----test()
--------examples.clj(6KB)
--------barging.clj(4KB)
--------zombie.clj(4KB)
--------regression.clj(2KB)
--------disjoint.clj(4KB)
--------commute.clj(5KB)
--------commute_after_alter.clj(3KB)
--------writeskew.clj(5KB)
----README.md(5KB)