A. Yes. Execute notify(thr1); from within synchronized code.
B. Yes. Execute notify(thr1); from synchronized code of any object.
C. Yes. Execute thr1.notify(); from any code (synchronized or not) of any object.
D. You cannot specify which thread will get notified.