"A new lock is obtained for each entry into a synchronized code block." Is each entry an object? What exactly is it... Thanks in advance
Joined: Feb 22, 2001
By entry, they mean when the flow of execution of the program progresses from a statement outside the block to the inside of the block. (Method returns don't count.) Does that answer address your question, or were you asking about the nature of the lock itself?
Joined: May 11, 2001
So for each block of code you can only have one entry?
Joined: Jan 30, 2000
No- if a method calls itself recursively, for example, a single block of code may be entered more than once, and each time a new lock is obtained on the same monitor. So a given monitor can have multiple locks held on it at the same time - the only catch is, they all have to be held by the same thread.