Useful Links
Computer Science
Programming
By Language
Java Programming
1. Introduction to Java
2. Core Language Fundamentals
3. Object-Oriented Programming (OOP) in Java
4. Exception Handling
5. Java Collections Framework
6. Generics
7. Input/Output (I/O)
8. Concurrency and Multithreading
9. Modern Java Features (Java 8 and beyond)
10. Java Virtual Machine (JVM) Internals
11. Build Tools and Dependency Management
12. Testing in Java
13. Database Connectivity (JDBC)
Concurrency and Multithreading
Introduction to Threads
Definition of Threads
Processes vs. Threads
The Java Memory Model
Creating Threads
Extending the Thread Class
Implementing the Runnable Interface
Lambda Expressions for Threads
Thread Lifecycle
Thread States
NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
State Transitions
Thread Synchronization
The synchronized Keyword
Synchronized Methods
Synchronized Blocks
Race Conditions
Critical Sections
Intrinsic Locks (Monitors)
Deadlock
Livelock
Starvation
Inter-thread Communication
wait() Method
notify() Method
notifyAll() Method
Producer-Consumer Problem
The java.util.concurrent Package
Overview of Concurrency Utilities
Executor and ExecutorService
Thread Pool Management
Thread Pools
Fixed Thread Pool
Cached Thread Pool
Scheduled Thread Pool
Callable and Future
Asynchronous Computation
CompletableFuture
Locks
ReentrantLock
ReadWriteLock
StampedLock
Atomic Variables
AtomicInteger
AtomicReference
AtomicBoolean
Concurrent Collections
ConcurrentHashMap
CopyOnWriteArrayList
BlockingQueue
Synchronizers
CountDownLatch
CyclicBarrier
Semaphore
Phaser
Previous
7. Input/Output (I/O)
Go to top
Next
9. Modern Java Features (Java 8 and beyond)