在阅读clojure programming后,我有几个关于参考和原子以及clojure参考类型的问题,而且大多数问题与本书有关。Clojure,原子和参考文献
第一:
的书说,大约协调,和它说:“协同动作是其中多个参与者必须以获得正确的结果进行合作。”这是否意味着如果我有3 fn fn1
,fn2
和fn3
,并且它们中的每一个都会执行一些可能会改变参考状态的操作(假设它发生在每个自己的Thread
中),它在链接操作中以同步方式发生?例如,fn1
的输出是fn2
等的输入。
二:
我无法理解refs
和atoms
之间的差异。该书说refs
用于协调同步,atoms
用于不协调的同步。它们中的每一个(refs
和atoms
)都有自己的示例,其中atoms
以多功能(1个原子2功能)操作的方式使用,而多个refs
具有1个功能。这本书并没有举例说明为什么我们不应该或不能以相反的方式去做。