File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes Doubt in Locking 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 "Doubt in Locking" Watch "Doubt in Locking" New topic

Doubt in Locking

rohan tiwari
Ranch Hand

Joined: Sep 13, 2007
Posts: 82
I am done with the coding of my project..URLYBird 1.1.2.It took me 120 hrs approx.
I have a requirement for my lock method which states that:
"If the specified record is already locked by a different
client, the current thread gives up the CPU and consumes no CPU cycles until the record is unlocked".

I have implemented timeout and reentrant locks in my reservation lock manager class . I think that if a thread conditionally waits for a short timeout or until a lock is released (whichever comes earlier) would not consume CPU cycles,since after the timeout the thread gives up as opposed to blocking continously until the lock is released.

Is my understanding correct ?

Musab Al-Rawi
Ranch Hand

Joined: Aug 06, 2007
Posts: 231
I think you should NOT use timeouts based on my understanding from the Monkhouse's book and posts.
Pay attention to the part where it says "by another client" if it is written in the assignment this means that if the client is trying to lock a record that is already locked by itself the client should not wait.

rohan tiwari
Ranch Hand

Joined: Sep 13, 2007
Posts: 82
I have removed timeouts.
John R Roberts
Ranch Hand

Joined: Dec 27, 2006
Posts: 36
Like you my solution used the ReentrantLock and Condition classes, NO timeouts.
I obtained 80/80 in the locking portion of the exam. Sounds like your taking a good approach.
I agree. Here's the link:
subject: Doubt in Locking
jQuery in Action, 3rd edition