Build high-performance multithreaded applications using Clojure's powerful toolsAbout This Book* Get to know the low and high level concepts of parallel programming and concurrency in detail* Get the only book on the market focused on Clojure concurrency* A comprehensive guide with step-by-step approach that will help you learn the mechanisms to build concurrent applicationsWho This Book Is ForThis book is for users who have a basic understanding of Clojure and wants to dive deep in the technology. Prior knowledge of concurrent programming is not required. If you have a solid understanding of the Java language, you will also find this book helpful.What You Will Learn* Understand the JVM primitives upon which other abstractions are built* Avoid the typical problems developers come across while writing concurrent applications* Grasp the different approaches to write concurrent and parallel applications* Build concurrent applications at scale using the Cloud and OSS* Differentiate between application requirements and select appropriate implementation patterns* Set up a basic project using Leiningen* Write code that can protect against application errors using transactions* Build a small fault-tolerant application using the Actors concurrency mechanism* Develop applications that utilise GPU computationIn DetailConcurrency programming helps developers capture the logical structure of certain applications and cope with independent physical devices thus ensuring multiple users work on a database without interference.Clojure is a great language to build concurrent applications with. Many applications require simultaneous task processing, but Clojure uses a multi-threaded approach to implement concurrent programming.Through this book, you will be able to understand the philosophy of Clojure and leverage the power of the multicore processor. We will help you write your code more efficiently and make inherently more scalable.
You will learn to build and test robust programs that make full use of your hardware. We will also take a look at writing concurrent applications at scale that run on the cloud with multiple servers.