I create threads of class A and each sends a serialized object to a Server using ObjectOutputStream.
The Server creates new Threads B for each socket connection (whenever a new A client connects)
B will call a synchronized method on a Shared Resource Mutex which causes it (B) to wait() until some internal condition in the Mutex is true.
In this case how A can know that B is currently waiting?
A is a GUI. each serialized object sent over socket is added to a queue in Mutex. So, at a particular time if the queue becomes full, B will have to wait till it frees some slots in the queue. So the end user (A GUI thread) has to see a message like "Please wait while a slot becomes free" . User will have to wait for a reply from B (when it becomes notified by Mutex) in order to continue operations in the GUI (i.e: click a button to open the next JFrame and carry on work)...