Introduction
  • Introduction
  • Single Threaded vs Multi Threaded Apps
  • Single Threaded App Example
  • Notes - Single Threaded App Example
  • True Parallelism vs Logical Parallelism
  • Notes - True Parallelism vs Logical Parallelism
Designing Multi-threaded applications
  • Designing Threads
  • Designing Threads Explained
  • Notes - Designing Threads
  • Transform code to achieve parallelism
  • Notes - Transform code to achieve parallelism
  • Executor Service
  • Notes - Executor Service
  • Stopping Thread in the middle
  • Notes - Stopping Thread in the middle
  • Thread States
  • Notes - Thread States
  • Thread Priorities
  • Notes - Thread Priorities
  • Internal System Threads and ThreadGroup
  • Notes - Internal System Threads and ThreadGroup
  • Daemon Threads
  • Notes - Daemon Threads
  • Callable Task
  • Notes - Callable Task
  • Pattern search in folder - Serial approach
  • Pattern search in folder - Parallel approach
  • Notes - Pattern Search in folder
  • Problem Set - 1
  • Problem Set - 1 - Solution
Concurrency Control
  • Need for Synchronization
  • Synchronized methods
  • Synchronized in case of static members
  • The Problem with Synchronized Method and Solution with Synchronized Block
  • Notes - Thread Synchronization
  • Deadlocks and solution with lock sequencing
  • Notes - Deadlocks and solution with lock sequencing
  • Reentrant Locks
  • Notes - Reentrant Locks
  • Problem Set - 2
  • Problem Set - 2 - Solution
  • Thread Signaling Using wait and notify
  • Producer and Consumer Problem
  • Notes - Producer and Consumer Problem
Mock HttpServer and ThreadLocal Pattern
  • HTTP and Mock multi-threaded HTTP Server
  • ThreadLocal
  • Notes - ThreadLocal
java.util.concurrent package
  • BlockingQueue and revised producer and consumer problem
  • Notes - BlockingQueue and revised producer and consumer problem
  • PriorityBlockingQueue
  • Notes - PriorityBlockingQueue
  • Fork Join Framework
  • Notes - Fork Join Framework
  • Semaphore
  • CountDownLatch
  • CyclicBarrier
  • Atomic Types (AtomicInteger, AtomicBoolean....)
Kick Start Thinking Distributed
  • Scale up using Queues
  • Heads up about Distributed Locks
Source Code
  • Source Code for download
What's next?
  • Bonus Lecture: OFFER Coupons for my other courses