Overview
Explore various approaches to managing concurrency in Java through this conference talk from Spring I/O 2016. Dive into the challenges of writing correct concurrent code and learn about different methods to handle concurrency, from basic threads to higher-level primitives like fibers and work-stealing solutions. Examine a simple concurrent problem solved using threads, executors, actors, fibers, and monadic code with completable futures. Compare these approaches in terms of simplicity, readability, configuration, and management. Gain insights into when to use each method in your projects, understanding their benefits and trade-offs. Cover topics such as revolutionary developer tools, concurrency parallelism theory and practice, thread pools, the Fork Join Framework, Completable Futures, Actor Systems, Quasar Fibers, and Transactional Memory. Enhance your understanding of concurrent programming in Java and make informed decisions on the best approach for your specific scenarios.
Syllabus
Intro
REVOLUTIONARY DEVELOPER TOOLS
WHY DO WE CARE?
CONCURRENCY PARALLELISM
THEORY
PRACTICE
WHY THREADS
COMMUNICATION
PROBLEM ORIENTED PROGRAMMING
TAKEAWAY: THREADS
THREAD POOLS
CONCERNS: EXECUTORS
TAKEAWAY: EXECUTORS
FORK JOIN FRAMEWORK
TAKEAWAY: FORK JOIN POOL
COMPLETABLE FUTURES
Using types
ACTOR SYSTEM
TYPED ACTORS
TAKEAWAY: ACTORS
QUASAR FIBERS
TAKEAWAY: FIBERS
TRANSACTIONAL MEMORY
TAKEAWAY: TX MEMORY
CONCLUSION
Find me and chat with me!
Taught by
Spring I/O