3 arrows

Summer-Ready Savings: Up To $500 Off Training 

closeClose

Java Concurrency

  • Tuition USD $3,500
  • Reviews star_rate star_rate star_rate star_rate star_half 4064 Ratings
  • Course Code JAV-404
  • Duration 4 days
  • Available Formats Classroom

During this 4-day course, you will learn how to write safe multi-threaded Java code that performs well on your hardware. You will learn techniques to ensure visibility of your fields, to build thread safety without explicit locking. You will learn the new fork/join constructs and explore ways to parallelize your algorithms.

Skills Gained

Please refer to Java Concurrency Content Details

Who Can Benefit

If you answer "yes!" to any of the following questions, then this course is for you:

  • Has your system ever caused some strange behaviors that you could not explain? This often happens at the worst time, such as when your system is very busy. Imagine losing your biggest shopping day!
  • Have you ever wondered how some of the more advanced Java constructs work, such as the ConcurrentHashMap or ConcurrentLinkedQueue?
  • Would you like to find out how ReadWriteLocks can cause serious starvation?
  • Have you ever programmed a web application, a servlet, a JSP page, a Swing application?
  • Are you an above average Java programmer, interested to learn more?

Prerequisites

This course is ideally suited to the professional Java programmer with at least 2 years experience, who would like to learn how to truly understand Java concurrency.

Course Details

Testimonials

"I am extremely pleased that Dr. Heinz Kabutz has created a training course based on Java Concurrency in Practice. Everyone in the Java community appreciates Dr. Heinz' work; his deep understanding of Java -- and his passion for it -- show through in everything he does. This course is sure to be a winner." Brian Goetz, Author of Java Concurrency in Practice

  • The Java Concurrency Course is the only such training officially endorsed by Brian Goetz, and is based on his best-seller book Java Concurrency in Practice. The course was written by Dr Heinz Kabutz, author of The Java Specialists' Newsletter, with contributions by Victor Grazi, author of the Java Concurrent Animated Tutorial.

Introduction

History of concurrency

Benefits of threads

Risks of threads

Threads are everywhere

Annotations for Concurrency

  • Class annotations
  • Field and method annotations

The Java Memory

  • What is a memory model, and why would I want one?
  • Publication
  • Initialization safety

Fundamentals

Thread Safety

  • What is thread safety?
  • Atomicity
  • Locking
  • Guarding state with locks
  • Liveness and performance

Sharing Objects

  • Visibility
  • Publication and escape
  • Thread confinement
  • Immutability
  • Safe publication

Composing Objects

  • Designing a thread-safe class
  • Instance confinement
  • Delegating thread safety
  • Adding functionality to existing thread-safe classes
  • Documenting synchronization policies

Building Blocks

  • Synchronized collections
  • Concurrent collections
  • Blocking queues and the producer-consumer pattern
  • Blocking and interruptible methods
  • Synchronizers
  • Building an efficient, scalable result cache

Structuring Concurrent Applications

Task Execution

  • Executing tasks in threads
  • The Executor framework
  • Finding exploitable parallelism

7 Cancellation and Shutdown

  • Task cancellation
  • Stopping a thread-based service
  • Handling abnormal thread termination
  • JVM shutdown

Applying Thread Pools

  • Implicit couplings between tasks and execution policies
  • Sizing thread pools
  • Configuring ThreadPoolExecutor
  • Extending ThreadPoolExecutor
  • Parallelizing recursive algorithms

Single-threaded subsystems

  • Why are some subsystems single-threaded?
  • Short-running tasks
  • Long-running tasks
  • Shared data models
  • Other forms of single-threaded subsystems

Liveness, Performance, and Testing

Avoiding Liveness Hazards

  • Deadlock
  • Avoiding and diagnosing deadlocks
  • Other liveness hazards

Performance and Scalability

  • Thinking about performance
  • Amdahl's law
  • Costs introduced by threads
  • Reducing lock contention
  • Example: Comparing Map performance
  • Reducing context switch overhead

Testing Concurrent Programs

  • Testing for correctness
  • Testing for performance
  • Avoiding performance testing pitfalls
  • Complementary testing approaches

Advanced Topics

Explicit Locks

  • Lock and ReentrantLock
  • Performance considerations
  • Fairness
  • Choosing between synchronized and ReentrantLock
  • Read-write locks

Building Custom Synchronizers

  • Managing state dependence
  • Using condition queues
  • Explicit condition objects
  • Anatomy of a synchronizer
  • AbstractQueuedSynchronizer
  • AQS in java.util.concurrent synchronizer classes

Atomic Variables and Nonblocking Synchronization

  • Disadvantages of locking
  • Hardware support for concurrency
  • Atomic variable classes
  • Nonblocking algorithms

Concurrent Language Support

  • Fork/Join
  • Groovy parallel Framework

When does class start/end?

Classes begin promptly at 9:00 am, and typically end at 5:00 pm.

Does the course schedule include a Lunchbreak?

Lunch is normally an hour long and begins at noon. Coffee, tea, hot chocolate and juice are available all day in the kitchen. Fruit, muffins and bagels are served each morning. There are numerous restaurants near each of our centers, and some popular ones are indicated on the Area Map in the Student Welcome Handbooks - these can be picked up in the lobby or requested from one of our ExitCertified staff.

How can someone reach me during class?

If someone should need to contact you while you are in class, please have them call the center telephone number and leave a message with the receptionist.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does ExitCertified deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

Does ExitCertified deliver group training?

Yes, we provide training for groups, individuals, and private on sites. View our group training page for more information.

Very clean, great cafeteria and well sorted, very kind staff. The bathrooms have to be expanded as they might get crowded sometimes

Labs and the study materials provided for Architecting on AWS course are very easy to understand and explains all the topics required to pass the Associate certification.

It is very good and very simple instructions. almost to much hand holding.

The class was good, but at times the pace did seem a bit fast to actually try to remember some of the information.

The exit certified aws course provided a good introduction to the tools available on aws.

0 options available

There are currently no scheduled dates for this course. If you are interested in this course, request a course date with the links above. We can also contact you when the course is scheduled in your area.

Contact Us 1-800-803-3948
Contact Us
FAQ Get immediate answers to our most frequently asked qestions. View FAQs arrow_forward