XOE-0342 Flavors of Concurrency in Java | Devoxx

Flavors of Concurrency in Java


java Java SE

Room 2 - Schibsted

Tuesday at 13:50 - 14:50

Writing concurrent code that is also correct is unbelievably hard. Naturally, humanity has developed a number of approaches to handle concurrency in the code, starting from basic threads that follow the hardware way to do concurrency to higher level primitives like fibers and work-stealing solutions. But which approach is the best for you?

In this session, we'll take a look at a simple concurrent problem and solve it using different ways to manage concurrency: threads, executors, actors, fibers, monadic code with completable futures. All these approaches are different from the simplicity, readability, configuration and management point of view.

Some scenarios are better modelled with threads, while sometimes you're better off with actors. We'll discuss the benefits of each approach and figure out when it's worth pursuing in your project.

Oleg Šelajev Oleg Šelajev

Oleg is a Java developer, Evangelist and RebelLabs editor at ZeroTurnaround, with a focus on Continuous Delivery and Devops. He also enjoys spending time using Clojure, Github and Google docs. He is currently studying for a PhD on dynamic system updates and process migration and is a part-time teacher at the University of Tartu. As a technical writer for RebelLabs, Oleg regularly provides content for blogs and popular reports. In his free time he plays chess at a semi-grandmaster level, loves puzzles and solving problems. He is a geek but loves to hang out with people.