I believe the comment reads that deadlocks are the &quot;easiest concurrency problem&quot; to debug -- but your question is moreso headed to the point that they are easy to introduce in a system.<p>From the example, from a deadlock the locked threads and their stacktraces can be determined, which will help in pointing towards where the cause of the problem is. Compared to situations where the problem occurs due to a data-race causing an unexpected&#x2F;invalid state but a problem doesn&#x27;t manifest until later. Fixing this type of problem is more problematic as usually any exception&#x2F;stacktrace that might crop up does not relate any information as to how the state became invalid in the first place. I tend to see these types of bugs more than deadlocks and in my experience they&#x27;re always more involved in debugging compared to deadlocks.