|
|
1
13
我建议你也去看看克里斯托夫·格兰德的 thread safe blocking queue ; 它不到20行,但是包含很多功能,在我看来,它演示了Clojure的一些并发特性、不变性、原子和惰性序列的专家使用。 考虑Java替代Java.util.concurrent.LinkedBlockingQueue is 842 lines 你开始了解Clojure是如何真正实现其并发承诺的;显著提高抽象级别,并以大约10-20倍的代码交付正确的实现。 您还将注意到,在阅读Java代码时,很难看到树中的森林。。。如果给你看,你能确定它的正确性吗?还要记住,这段代码是由Doug Lea(可以说是Java并发性方面最重要的专家)编写的,并且是针对Java的,可读性很强;我非常怀疑我是否能用Java快速编写这样可读的高性能代码,并确保其正确性。 与Clojure版本相比,一旦熟悉了Clojure的基础知识,就很容易区分并理解它是如何工作的。。。在20分钟内,我能够理解实现的每一行,并确保其正确性。现在我对Clojure的习语和FP更加熟悉了,我想这会花我将近5分钟的时间。我也可能在几小时或几分钟内就可以在Clojure中编写这样的“正确”代码。 clojure wrapper 上述java类的功能也很有启发性,因为它与第一个版本共享相同的功能接口。 |
|
|
2
5
The Wide Finder Project 由蒂姆·布雷(Tim Bray)创办,有许多Clojure作品——其中最著名的是亚历克斯·奥斯本(Alex Osborne);他完了 a fantastic write-up Wide Finder 2 系列)是相当有趣的阅读(并携带了良好的教育价值)。加上亚历克斯的文字是真的很好,请阅读它,即使你决定跳过其余的。它使用了一些Clojure特有的特性(比如Atoms)以及从Java带来的东西,如果它做得很好的话&快。。。事实上,它展示Clojure优秀的Java互操作的方式会很有趣。 总而言之,我认为这是最好的开始。 |