Software has evolved so much that single threaded programs are rarely enough now.
In this talk, we’ll cover several approaches to organizing your concurrent Java code: from managing threads to actor frameworks, to software transactional memory.
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 differ by their simplicity, readability, configuration and so on.
Some scenarios are better modeled 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.
LEVEL OF TALK: Beginner