我不太了解Java中的并发性,比如Fork/Join Framework、Locks、Thread(全面)、Executor等。
我只是对它缺乏基本的知识和理论知识。
因为Clojure运行在JVM上,所以我认为在进入Clojure(并发性)之前,我必须很好地了解Java的并发模型。
我编写Java,但在工作中从来不需要并发。
现在我编写Clojure,并希望使用它进行一些并发/并行处理。
我是应该知道Java的并发模型,还是可以在使用Clojure时学习呢?
发布于 2016-10-31 20:48:27
不,您不需要学习这些东西来使用Clojure的并发性和并行性特性。
我永远不会提倡不学习一些东西,不过在这种情况下,如果您同时学习这些东西,您可能会被诱惑去使用Clojure中的锁,这几乎总是不必要的,而不是用习惯的Clojure方式。
当然,您需要学习并发编程和并行编程的基本思想。比如如何明智地分割工作,以及如何将结果组合在一起,从而得到正确的答案。
另外,如何避免导致资源饥饿的线程太多。这些东西可以在(几乎)任何语言中学到,尽管在Clojure中学习它们比其他语言更有趣。
一个可能的危险是,当不使用Clojure特性时,当您回到Java中更传统的OO方法时,您可能会发现不那么满意。
https://stackoverflow.com/questions/40349756
复制相似问题