RSS Feed icon YouTube icon Blog icon Facebook Icon LinkedIn Icon Twitter Icon

Training Courses - Course Information

JAVA-305 : Concurrent Programming with Java

Course Dates

Date(s) & Location(s):
Available for on-site delivery. Contact us for further information and pricing.
5 days

Course Description

As multi-core architectures become more common, one of the most compelling features of the Java programming language is its built-in support for concurrency. Java programmers use special syntax to implement synchronized access to shared variables and the Java compiler, library implementations, and operating system interface cooperate to present consistent and portable behavior of correctly written concurrent Java programs across all compliant Java virtual machine implementations.

This course details the practices that must be followed in order to write portable and reliable concurrent Java programs. Programmers who misunderstand or oversimplify these rules are likely to write concurrent Java software that will misbehave under rare race conditions and/or when deployed on a different virtual machine than where the code was originally developed and tested.

Course Objectives

  • Provide an awareness of the features of the Java support for concurrency
  • Describe the syntax and semantics of the Java concurrency support
  • Enable attendees to develop portable and reliable concurrent Java programs

Attendees Will Learn

  • Concurrency concepts
  • Thread models and implementations
  • Java primitives for mutual exclusion
  • Memory consistency issues and the Java memory model
  • Java primitives for waiting and signaling
  • Introduction to the util.concurrent package of JDK 1.5
  • How to structure classes for safety and liveness in concurrent systems
  • Effective use of immutability, synchronization, and confinement techniques
  • The role of real-time garbage collection


  • An understanding of Java

Who Should Attend

  • The course is ideal for designers and programmers of concurrent Java applications

Attendees Receive

  • A bound copy of all course slides

Course Format

The course is a combination of lectures and workshop sessions which makes use of Oracle’s Java Real-time Environment (JRE). The training material uses numerous examples to illustrate concepts and methods.

Course Outline

Day 1

  • Threads and Java
  • Race conditions and thread safety
  • The Java memory model

Day 2

  • Stopping threads
  • Waiting and signaling
  • Synchronization utilities
  • Using and composing thread-safe classes

Day 3

  • Safety and liveness
  • Designing and refactoring classes for concurrency

Day 4

  • Designing multithreaded systems
  • RPC, callbacks, Futures, message queuing

Day 5

  • Thread priorities and scheduling issues
  • Managing large numbers of threads

Course Files

Course Data Sheet:
JAVA-305.pdf  [866 Kb]