Executing tasks in parallel

The simultaneous execution of several computations is termed as parallelism. The use of parallelism tends to increase the overall performance of a computation, since the computation can be partitioned to execute on several cores or processors. Clojure has a couple of functions that can be used for the parallelization of a particular computation or task, and we will briefly examine them in this section.

Note

The following examples can be found in src/m_clj/c2/parallel.clj of the book's source code.

Suppose we have a function that pauses the current thread for some time and then returns a computed value, as depicted in Example 2.17:

(defn square-slowly [x]
  (Thread/sleep 2000)
  (* x x))

Example 2.17: A function that pauses the ...

Get Clojure: High Performance JVM Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.