Eric Normand Courses/A03 Clojure core.async

Learn to coordinate threads like a pro

11 fun lessons showing you how core.async works using animation and exercises.

Learn a powerful concurrency tool that makes complex coordination easy

Clojure is known for its powerful concurrency tools. It comes with a suite of primitives for managing shared mutable state. But how do you write code with multiple threads that communicate and coordinate with each other? In 2013, the Clojure team introduced core.async, an implementation of Communicating Sequential Processes for Clojure. It is a powerful, easily reasoned abstraction for writing highly concurrent code. It works in both Clojure and ClojureScript.

In this course, we go through the fundamentals with a real example. You'll learn:
  • Why you want channels between your workers
  • How to identify bottlenecks and eliminate them
  • How to deal with deadlock
  • A process for analyzing a network of workers
  • Techniques for mastering time
  • When and how to multitask
  • How to break up tasks into smaller subtasks

  • $48

A03 Clojure core.async

Contents

The Factory
Hiring (Increasing Concurrency)
Assembly Line (Coordinating Between Processes)
Conveyor Belts (Communicating using Channels)
Closing Shop (Stopping Processes)
Reducing Waste (Optimization)
Deadlock (When No One Can Work)
Consolidate (Scaling the right jobs)
Pomodoro (Incorporating Timers)
Multitasking (Doing work while waiting for other work)
Refactoring (Patterns for go-block components)

  • $48

A03 Clojure core.async