Identifying concurrency pitfalls in thread-safe stack design
This is an easy concurrency question that tests your ability to spot common synchronisation mistakes in multi-threaded data structures. It appears frequently in interviews for roles involving shared-memory programming—particularly at firms building low-latency trading systems or market-data infrastructure where thread safety is non-negotiable.
Questions of this type reward careful code reading and familiarity with the subtle gaps between "looks thread-safe" and "is actually thread-safe." The focus is not on implementing a correct solution from scratch, but on recognising where a plausible design breaks under concurrent load. Common areas to examine include lock scope, operation atomicity, ordering of operations, and whether invariants hold across thread context switches.
- Lock granularity and the cost of holding locks
- Race conditions between check and action
- Deadlock and livelock patterns
- Memory ordering and visibility guarantees