我是否应该了解Java并发性&;在Clojure中使用并发之前,线程模型等?

我是否应该了解Java并发性&;在Clojure中使用并发之前,线程模型等?,java,multithreading,concurrency,clojure,lisp,Java,Multithreading,Concurrency,Clojure,Lisp,我对Java中的并发性知之甚少,比如Fork/Join框架、锁、线程(全面地)、执行器等 我只是对这方面的基本知识和理论知之甚少 因为Clojure是在JVM上运行的,所以我想在进入Clojure(并发)之前,我必须非常了解Java的并发模型 我编写Java,但在工作中从不需要并发性 现在我写Clojure,并想用它做一些并发/并行的事情 我应该知道Java的并发模型吗?或者我可以在使用Clojure的实践中学习吗?不,使用Clojure的并发和并行特性不需要学习这些东西 我从不主张不学习一些东

我对Java中的并发性知之甚少,比如Fork/Join框架、锁、线程(全面地)、执行器等

我只是对这方面的基本知识和理论知之甚少

因为Clojure是在JVM上运行的,所以我想在进入Clojure(并发)之前,我必须非常了解Java的并发模型

我编写Java,但在工作中从不需要并发性

现在我写Clojure,并想用它做一些并发/并行的事情


我应该知道Java的并发模型吗?或者我可以在使用Clojure的实践中学习吗?

不,使用Clojure的并发和并行特性不需要学习这些东西

我从不主张不学习一些东西,尽管在这种情况下,如果你同时学习这些东西,你可能会在Clojure中尝试使用锁,这几乎总是不必要的,而不是用习惯的Clojure方式

您当然需要学习并发编程和并行编程的基本思想。比如如何智能地分割工作,以及如何组合结果以获得正确答案

还有,如何避免装入太多线程而导致资源匮乏。这些东西可以用(几乎)任何语言学习,尽管用Clojure学习比其他语言更有趣


一个可能的危险是,在没有Clojure特性的情况下工作时,回到Java中更传统的OO方法时,您可能会感到不太满意。

不,您不需要学习这些东西来使用Clojure的并发性和并行性特性

我从不主张不学习一些东西,尽管在这种情况下,如果你同时学习这些东西,你可能会在Clojure中尝试使用锁,这几乎总是不必要的,而不是用习惯的Clojure方式

您当然需要学习并发编程和并行编程的基本思想。比如如何智能地分割工作,以及如何组合结果以获得正确答案

还有,如何避免装入太多线程而导致资源匮乏。这些东西可以用(几乎)任何语言学习,尽管用Clojure学习比其他语言更有趣


一个可能的危险是,在没有Clojure功能的情况下工作时,如果回到Java中更传统的OO方法,您可能会感到不太满意。

在接触并发之前,您需要了解硬件。我不同意!这是一个非常具有欺骗性的说法!在接触并发之前,您需要了解硬件。我不同意!这是一个非常具有欺骗性的说法!