O'Reilly logo

Clojure: High Performance JVM Programming by Akhil Wali, Shantanu Kumar, Eduardo Díaz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required