Transducers in action
In this section, we will examine how transducers are implemented. We will also get a basic idea of how our own transducible source of data can be implemented.
Managing volatile references
Some transducers can internally use state. It turns out that the existing reference types, such as atoms and refs, aren't fast enough for the implementation of transducers. To circumvent this problem, transducers also introduce a new volatile reference type. A volatile reference represents a mutable variable that will not be copied into the thread-local cache. Also, volatile references are not atomic. They are implemented in Java using the volatile
keyword with a java.lang.Object
type.
Note
The following examples can be found in src/m_clj/c5/volatile.clj ...
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.