We discuss important concurrency concepts such as deadlock, liveness, live-lock, starvation, and reentrant locks in depth. Also included are executable code examples for illustrating these concepts. Please consider supporting us by signing up for a paid Medium account. Deadlock and Liveness Logical follies committed in multithreaded code, while trying to avoid race conditions…