Concurrency
- ▸ concurrency Producer-consumer with BlockingQueueFREE
- ▸ concurrency Java 21 ScopedValue vs ThreadLocalFREE
- ▸ concurrency ThreadLocal — what it is and the classic memory leakFREE
- ▸ concurrency ForkJoinPool and work-stealingFREE
- ▸ concurrency volatile vs synchronized vs atomic — when each?FREE
- ▸ concurrency Deadlock — how it happens, and how to detect and prevent it
- ▸ concurrency CompletableFuture pipelines — thenApply, thenCompose and thenCombine
- ▸ concurrency ExecutorService types — and why newFixedThreadPool can sink you
- ▸ concurrency synchronized methods vs blocks — what actually gets locked
- ▸ concurrency ReentrantLock vs synchronized — and when fairness matters
- ▸ concurrency wait/notify vs Condition — what changed
- ▸ concurrency The Java Memory Model and happens-before
- ▸ concurrency CompletableFuture errors — exceptionally vs handle vs whenComplete
- ▸ concurrency AtomicInteger and compare-and-swap — how lock-free updates work
- ▸ concurrency Future vs CompletableFuture
- ▸ concurrency CountDownLatch, CyclicBarrier, Semaphore and Phaser
- ▸ concurrency BlockingQueue implementations — which one when?
- ▸ concurrency ThreadPoolExecutor's knobs — core size, queue and rejection policy
- ▸ concurrency ConcurrentLinkedQueue and how lock-free structures work
- ▸ concurrency False sharing — the cache-line slowdown and how to fix it
- ▸ concurrency ReadWriteLock vs StampedLock — read-heavy locking
- ▸ concurrency A thread's life — the six states
- ▸ concurrency Runnable vs Callable vs extending Thread
- ▸ concurrency Race conditions and check-then-act bugs
- ▸ concurrency Making a class thread-safe — confinement, immutability and locking
- ▸ concurrency Livelock and starvation — the quieter cousins of deadlock
- ▸ concurrency Daemon threads vs user threads
- ▸ concurrency sleep vs wait vs yield vs join
- ▸ concurrency Concurrent counters — AtomicLong vs LongAdder
- ▸ concurrency Concurrency vs parallelism
- ▸ concurrency Thread-pool starvation — when tasks wait on tasks in the same pool
- ▸ concurrency Timeouts — Future.get with a timeout, invokeAll and invokeAny
- ▸ concurrency Scheduling work — ScheduledExecutorService vs Timer