Java Programming

  1. Concurrency and Multithreading
    1. Introduction to Threads
      1. Definition of Threads
        1. Processes vs. Threads
          1. The Java Memory Model
          2. Creating Threads
            1. Extending the Thread Class
              1. Implementing the Runnable Interface
                1. Lambda Expressions for Threads
                2. Thread Lifecycle
                  1. Thread States
                    1. NEW
                      1. RUNNABLE
                        1. BLOCKED
                          1. WAITING
                            1. TIMED_WAITING
                              1. TERMINATED
                              2. State Transitions
                              3. Thread Synchronization
                                1. The synchronized Keyword
                                  1. Synchronized Methods
                                    1. Synchronized Blocks
                                    2. Race Conditions
                                      1. Critical Sections
                                        1. Intrinsic Locks (Monitors)
                                          1. Deadlock
                                            1. Livelock
                                              1. Starvation
                                              2. Inter-thread Communication
                                                1. wait() Method
                                                  1. notify() Method
                                                    1. notifyAll() Method
                                                      1. Producer-Consumer Problem
                                                      2. The java.util.concurrent Package
                                                        1. Overview of Concurrency Utilities
                                                          1. Executor and ExecutorService
                                                            1. Thread Pool Management
                                                            2. Thread Pools
                                                              1. Fixed Thread Pool
                                                                1. Cached Thread Pool
                                                                  1. Scheduled Thread Pool
                                                                  2. Callable and Future
                                                                    1. Asynchronous Computation
                                                                    2. CompletableFuture
                                                                      1. Locks
                                                                        1. ReentrantLock
                                                                          1. ReadWriteLock
                                                                            1. StampedLock
                                                                            2. Atomic Variables
                                                                              1. AtomicInteger
                                                                                1. AtomicReference
                                                                                  1. AtomicBoolean
                                                                                  2. Concurrent Collections
                                                                                    1. ConcurrentHashMap
                                                                                      1. CopyOnWriteArrayList
                                                                                        1. BlockingQueue
                                                                                        2. Synchronizers
                                                                                          1. CountDownLatch
                                                                                            1. CyclicBarrier
                                                                                              1. Semaphore
                                                                                                1. Phaser