In this case, when Sun implemented the join () method they used the Thread object to signal that the thread has terminated.
Any other thread, that waits on the thread object (and not for join ()), will have an unintended effect of getting an notification too.