If there is more than one Thread waiting for the lock, then I believe that the one that is awakened is chosen at random.
Well, not necessarily at random, from what I've read, but in a way that isn't defined by the
Java Spec, and is up to the particular JVM you are using. So you won't know which thread gets chosen next, it may be random, or it may be chosen by some criteria which you don't know about, and even if you did, you couldn't count on.
(correct me if I am wrong, of course)