Signaling disciplines
Signal and exit: If a thread executing inside a monitor signals on a condition variable, it must leave the monitor immediately after generating the signal by executing a return statement in the service method it invoked. A thread from the wait set of the condition variable is awakened and continues executing inside the monitor. It gets priority to execute.
Signal and wait: Signaled thread executed inside the monitor while signaler waits for it to exit the monitor. Then the signaler continues.
Signal and continue: Signaled threads waits for the signaler to leave the monitor before it resumes execution inside the monitor.