Code Deadlocks and Their Causes

In multi-threaded development environments, it is common to use more than a single lock. However, sometimes deadlocks will occur. Here are some possible causes:

  • The order of the locks is not optimal
  • The context in which they are being called (for example, from within a callback) is not correct
  • Two threads may wait for each other to signal an event