InterviewStack.io LogoInterviewStack.io

Concurrency and Multithreading Questions

Principles and practical techniques for concurrent execution and safe access to shared state across threads or execution contexts. Covers synchronization primitives (locks, mutexes, semaphores, condition variables), atomic operations and memory ordering, avoiding deadlocks, race conditions, and livelocks, designing thread safe data structures, thread pools and work scheduling, and asynchronous or event driven execution models such as coroutines, futures and promises, and reactive streams. Also covers platform and language specific concurrency tools, for example java.util.concurrent and POSIX threads on backend systems, Grand Central Dispatch and OperationQueue on iOS, coroutines and structured concurrency on Android/Kotlin, and async/await models in other languages. Evaluations focus on reasoning about correctness under concurrent access, performance trade offs (throughput, latency, contention), and preventing blocking of latency sensitive execution paths (server request handlers, UI threads, game loops) to maintain responsiveness.

HardTechnical
47 practiced
Explain priority inversion and design strategies to avoid it in real-time systems. Describe priority inheritance as a solution, its implementation implications, and show a code sketch of a mutex wrapper that supports priority inheritance semantics.
HardTechnical
46 practiced
Explain C++11 memory_order semantics: relaxed, acquire, release, acquire-release, and seq_cst. Provide a small code example that demonstrates a reordering that relaxed allows but acquire-release would prevent, and discuss performance trade-offs when choosing an ordering.
MediumSystem Design
59 practiced
Design a scalable real-time metrics ingestion pipeline that must handle 100k events per second with low aggregation latency. Describe how you would use concurrency for ingestion, batching, worker pools, durable buffering, sharding, backpressure and fault tolerance across nodes.
HardSystem Design
55 practiced
Design a distributed job scheduler that dispatches jobs to worker nodes running tasks concurrently. Explain how you will handle worker failures, job leasing, at-least-once vs exactly-once execution semantics, leader election, and how concurrency at the worker should be controlled.
MediumTechnical
66 practiced
Compare async/await, callbacks, and promises/futures across JavaScript, Python asyncio, Java CompletableFuture, and Kotlin coroutines. Discuss error propagation, cancellation, composition, and debugging implications for each model.

Unlock Full Question Bank

Get access to hundreds of Concurrency and Multithreading interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.