>>788
staticメソッドとnon-staticメソッドがそれぞれ
synchronized修飾されているとする。この場合

staticメソッドの方はメソッド内でsynchronized(this.getClass()) {・・・}とするのと同じ。
non-staticメソッドの方はメソッド内でsynchronized(this) {・・・}とするのと同じ。

モニターを獲得するオブジェクトが異なるんだから同時に実行される
可能性があるのはあたりまえ。