Visualizing potential deadlocks in multithreaded programs

  • Kim B
  • Jun S
  • Hwang D
 et al. 
  • 5


    Mendeley users who have this article in their library.
  • 6


    Citations of this article.


It is important to analyze and identify potential deadlocks resident in multithreaded programs from a successful deadlock-free execution, because the nondeterministic nature of such programs may hide the errors during testing. Visualizing the runtime behaviors of locking operations makes it possible to debug such errors effectively, because it provides intuitive understanding of different feasible executions caused by nondeterminism. However, with previous visualization techniques, it is hard to capture alternate orders imposed by locks due to their representation of a partial-order over locking operations. This paper presents a novel graph, called lock-causality graph, which represents alternate orders over locking operations. A visualization tool implements the graph, and demonstrates its power using the classical dining-philosophers problem written in Java. The experiment result shows that the graph provides a simple but powerful representation of potential deadlocks in an execution instance not deadlocked.

Author-supplied keywords

  • Debugging
  • Lock-causality graph
  • Multithreaded programs
  • Potential deadlocks
  • Visualization

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document


  • Byung Chul Kim

  • Sang Woo Jun

  • Dae Joon Hwang

  • Yong Kee Jun

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free