Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which of these statements about two threads acquiring two locks in opposite orders is correct?

  • A.Two threads taking the same two locks in opposite orders are safe.
  • B.Two threads taking the same two locks in opposite orders deadlock only if the locks are static.
  • C.Deadlock cannot occur in Java.
  • D.Two threads taking the same two locks in opposite orders may deadlock.

Answer: D

Each thread holds one lock and waits for the other, so neither can proceed and neither will release what it has. Monitors are released when a synchronized region exits, which never happens here. The standard remedy is to impose one global order in which locks are always acquired.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.