The only time a lock gets released and reacquired while within a synchronized block is when wait
is called. Otherwise the lock is held until the block is exited.
If other threads are calling B or C then those will not be affected by any locking on A.Any thread calling B from A will still have its lock, but that doesn't matter to threads calling B without coming through A, they will not stop to acquire a lock.