Volevo sapere se le mie risposte dopo aver studiato i thread siano giuste...Grazie mille a chiunque mi risponda

codice:
class A { 
    public synchronized void m1() {
          istr1;
    }
    public void m2() {
              istr2;
              synchronized(this){ istr3;}
     }
}
Siano dati due oggetti, a e b, della classe A, due thread, th1 e th2, che eseguono i metodi di a, e un thread th3 che esegue i metodi di b.
Spiegare se è possibile che:

(a) th1 e th2 eseguano contemporaneamente l’istruzione istr1?
No perchè l'istruzione una che si trova nel metodo m1() è sincronizzato quindi viene svolto da un thread alla volta.

(b) th1 e th2 eseguano contemporaneamente l’istruzione istr2?
Sì perchè istr2 si trova nel metodo m2() e non è sincronizzato

(c) th1 e th3 eseguano contemporaneamente l’istruzione istr3?
Sì perchè sono due oggetti distinti uno della classe A l'altro della classe B quindi i due thread non interferiscono tra di loro

(d) th1 e th2 eseguano contemporaneamente uno l’istruzione istr1 e l’altro l’istruzione istr2?
Sì perchè l'istruzione istr2 non è sincronizzata

(e) th1 e th2 eseguano contemporaneamente uno l’istruzione istr1 e l’altro l’istruzione istr3?
No perchè th1 sta eseguendo un metodo sincronizzato essendo che fanno riferimento allo stesso oggetto deve attendere la terminazione del th1 per iniziare th2

(f ) th1 e th3 eseguano contemporaneamente uno l’istruzione istr1 e l’altro l’istruzione istr3?
Sì perchè si riferiscono a due oggetti distinti quindi non interferiscono con i thread che eseguono metodi sincronizzati dell'altro