This week's book giveaway is in the Design forum.
We're giving away four copies of Building Microservices and have Sam Newman on-line!
See this thread for details.
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

Win a copy of Building Microservices this week in the Design forum!
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: 2270

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’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link:
subject: Synchronization question
It's not a secret anymore!