Pricing options

Choose how you want to get access to this course

Course curriculum

  • 1

    Introduction

  • 2

    The Java Thread

    • What are threads?

    • What is a process?

    • Process vs threads

    • Threads in a Java app

    • Understanding Thread and Runnable

    • Thread - Syntax alternatives

    • Practical usage of the Thread API

    • Daemon threads

    • Understanding Thread Life cycle

    • Coding with Thread States

  • 3

    Working with threads

    • Sleep and the InterruptedException

    • Joining threads

    • Stopping a Thread

    • Implementing thread interrupt and join

    • Parallelism vs Concurrency

  • 4

    Understanding Synchronization

    • The Need for Synchronization

    • Common Race Condition Patterns

    • Solving Race Conditions

    • Using synchronization

    • Monitors, mutex and structured locking

    • Problems with mutual exclusion

    • Liveness - deadlocks, livelocks and starvation

    • The volatile keyword

    • Understanding thread local

  • 5

    Locks and Executors

    • Unstructured locks and the lock object

    • The Lock interface

    • The executor service

    • Fixed thread pool

    • Thread pool and Executor types

    • Coding with various ExecutorServices

  • 6

    Futures, Callables and Fork-Join

    • Using a Callable

    • The Future object

    • Coding with Futures and Callables

    • Other methods on Future and Callables

    • Using Completable Futures

    • Semaphores

    • Understanding fork join

    • Coding with fork join

  • 7

    Before you go...

    • Test your knowledge