The moose likes Developer Certification (SCJD/OCMJD) and the fly likes Synchronization question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "Synchronization question" Watch "Synchronization question" New topic

Synchronization question

David Pantale
Ranch Hand

Joined: Mar 16, 2010
Posts: 32
I'm doing my final testing and noticed something disturbing. In my lockRecord method ( which I have written as public synchronized long lockRecord(long recNo)), I have thread 1 entering the code (according to my println statement) and half way through the code, before an actual lock is made on the record number, thread 2 begins executing lockRecord (according to println statement). My understanding was that once a thread entered synchronized code it could not be swapped out and another thread start running in the same code. Am I mistaken? Any suggestions as to how this happens?

(And, yes, my data object is a singleton)


Follow up: Okay, answer found and apparently not a problem - I just got upset and overreacted. My printlin comments were not complete enough, the synchronized code had actually ended when errors were thrown but my println statements did not reflect that. By adding a few extra println statements the mystery was solved.
Roberto Perillo

Joined: Dec 28, 2007
Posts: 2271

David Pantale wrote:Okay, answer found and apparently not a problem

Alright! Good news!

Cheers, Bob "John Lennon" Perillo
SCJP, SCWCD, SCJD, SCBCD - Daileon: A Tool for Enabling Domain Annotations
I agree. Here's the link:
subject: Synchronization question
It's not a secret anymore!