When a thread calls the join() method of a thread object -- it will wait until the thread represented by that thread object completes. Nothing else is affected.
In your example, the main thread will wait until thread A completes. Period. Thread B (or any other thread) does not wait til thread A completes. Nor does the main thread waits for any other thread to complete.