class Test
{
  synchronized void f1() {...}
  synchronized void f2() {...}
}

Test obj = new Test;

とした場合、
「obj.f1()があるスレッドで実行されていればobj.f2()は
 他のスレッドで実行されることはできない。」
という理解で正しいでしょうか?
マルチスレッドは扱ったことがなくてjavaの解説文を参考にしたのですが。