| S.No |
Topic |
Sub-Topics |
| 1 | Multithreading | What is Thread, Process vs Thread, Benefits of Multithreading, Applications, Thread Lifecycle Overview |
| 2 | Thread Class | Creating Thread by extending Thread, start(), run(), sleep(), join(), getName() |
| 3 | Runnable Interface | Implementing Runnable, Passing to Thread, Advantages, run() vs start(), Lambda Runnable |
| 4 | Thread Lifecycle | New, Runnable, Running, Waiting, Timed Waiting, Terminated, Thread State Transitions |
| 5 | Thread Methods | setName/getName, setPriority/getPriority, isAlive(), yield(), interrupt() |
| 6 | Thread Priority | Min/Max/Normal Priority, setPriority, Thread Scheduling, Preemption, Fairness |
| 7 | Thread Sleep & Join | sleep(), join(), wait vs sleep, timed join, practical examples |
| 8 | Thread Communication | wait(), notify(), notifyAll(), producer-consumer basics, synchronized block |
| 9 | Synchronized Methods | Method-level sync, block-level sync, object lock, class-level lock, best practices |
| 10 | Inter-thread Communication | Producer-Consumer Problem, BlockingQueue, wait/notify, ReentrantLock with Condition, deadlock prevention |
| 11 | Reentrant Locks | Lock interface, ReentrantLock, tryLock(), lockInterruptibly(), fairness, conditions |
| 12 | Deadlock | What is Deadlock, Conditions, Prevention, Avoidance, Detection, Recovery |
| 13 | Starvation & Livelock | Starvation, Livelock, Examples, Priority Inversion, Solutions |
| 14 | Thread Safety | Definition, Thread-safe classes, Immutable Objects, Synchronization, Atomic variables |
| 15 | Atomic Classes | AtomicInteger, AtomicLong, AtomicReference, compareAndSet, use cases |
| 16 | Volatile Keyword | What is volatile, visibility, happens-before, example usage, memory consistency |
| 17 | Concurrent Collections | ConcurrentHashMap, CopyOnWriteArrayList, BlockingQueue, ConcurrentSkipListMap, benefits |
| 18 | Executor Framework | Executor, ExecutorService, ThreadPoolExecutor, ScheduledExecutorService, shutdown |
| 19 | Thread Pools | FixedPool, CachedPool, SingleThreadPool, ScheduledPool, Advantages |
| 20 | Callable & Future | Callable Interface, Future, submit(), get(), timeout handling, cancelling tasks |
| 21 | ForkJoin Framework | ForkJoinPool, RecursiveTask, RecursiveAction, work-stealing, parallel computation |
| 22 | Parallel Streams | Stream API, parallel(), ForkJoin usage, performance tips, pitfalls |
| 23 | ThreadLocal | ThreadLocal variables, usage, memory leak, InheritableThreadLocal, examples |
| 24 | Synchronization Utilities | CountDownLatch, CyclicBarrier, Semaphore, Phaser, Exchanger |
| 25 | Deadlock Prevention Patterns | Lock Ordering, TryLock, Timeout, Avoid Nested Locks, Resource hierarchy |
| 26 | Best Practices | Minimize synchronized code, prefer high-level concurrency, immutable objects, use executor, avoid busy wait |
| 27 | Performance Tuning | Thread pool sizing, contention reduction, CPU-bound vs IO-bound, measuring, profiling |
| 28 | Common Concurrency Bugs | Race conditions, deadlocks, livelocks, visibility issues, fixes |
| 29 | Real-world Examples | Producer-Consumer app, Web server handling requests, parallel processing, async tasks, thread-safe cache |
| 30 | Interview & Revision | Key methods, concurrency concepts, common pitfalls, multithreading Q&A, mini projects |