The proliferation of multi-core machines has changed the way developers must approach the design and implementation of their code. Concurrency is a complex subject but it doesn't have to be hard. This session will cover the fundamentals of concurrent programming using the Java language with the goal of helping developers avoid common pitfalls. Covered in this session is: