clojure并发学习
1: ref 抽象协调的、同步的可变状态, 利用STM来实现
创建一个ref
(def r (ref {}))
用引ref的值 @f 或 (deref f)
改变ref的值
alter, commute, ref-set ensure
2: agent抽象协调的,异步的单个可表状态
send, send-off
3: atom表示共享的、同步的独立的状态,不需要协调
swap!, compare-and-set
4:var抽象单个线程下的可变,所有线程共享同一个根的状态
创建一个var
(def v "")
线程局部绑定
(binding [ v 1]
v)
clojure function store var
1: ref 抽象协调的、同步的可变状态, 利用STM来实现
创建一个ref
(def r (ref {}))
用引ref的值 @f 或 (deref f)
改变ref的值
alter, commute, ref-set ensure
2: agent抽象协调的,异步的单个可表状态
send, send-off
3: atom表示共享的、同步的独立的状态,不需要协调
swap!, compare-and-set
4:var抽象单个线程下的可变,所有线程共享同一个根的状态
创建一个var
(def v "")
线程局部绑定
(binding [ v 1]
v)
clojure function store var