<分区>
我不太了解 Java 中的并发性,例如 Fork/Join Framework、锁、线程(综合)、执行器等。
我对此只有一点基础知识和理论。
既然Clojure运行在JVM上,我想在进入Clojure(并发)之前我必须非常了解Java的并发模型?
我写 Java,但在工作中从不需要并发。
现在我编写 Clojure 并想用它做一些并发/并行的事情。
我应该了解 Java 的并发模型还是可以在练习 Clojure 的同时学习?
<分区>
我不太了解 Java 中的并发性,例如 Fork/Join Framework、锁、线程(综合)、执行器等。
我对此只有一点基础知识和理论。
既然Clojure运行在JVM上,我想在进入Clojure(并发)之前我必须非常了解Java的并发模型?
我写 Java,但在工作中从不需要并发。
现在我编写 Clojure 并想用它做一些并发/并行的事情。
我应该了解 Java 的并发模型还是可以在练习 Clojure 的同时学习?
最佳答案
不,您不需要学习这些东西来使用 Clojure 的并发和并行特性。
我永远不会提倡不学习某些东西,但在这种情况下,如果您同时学习这些东西,您可能会很想去 Clojure 中获取锁,这几乎总是不必要的,而不是这样做惯用的 Clojure 方式。
您当然需要学习的是并发编程和并行编程的基本思想。诸如如何智能地拆分工作,以及如何合并结果以便获得正确答案之类的事情。
还有如何避免创建太多导致资源匮乏的线程。这些东西可以用(几乎)任何语言学习,尽管在 Clojure 中学习它们比其他语言更有趣。
一个可能的危险是,如果在没有 Clojure 功能的情况下工作,当您回到 Java 中更传统的 OO 方法时,您可能会发现不太满意。
关于java - 在Clojure中使用并发之前是否应该全面了解Java并发和线程模型等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40349756/