I'm not sure what you're asking.
If you have 2 objects (as distinct from classes) then each will have its own lock. Also, you are implying use of method level locks which are distinct from a lock associated on an object.
Synchronized( my1 ){...} will obtain a lock on one of your objects and no other
Thread will be able to obtain a lock on that object.
Calling my1.f() and my1.g() concurrently from different Threads can be done as they are distinct locks.
Calling my1.f() concurrently from different Threads will be prevented as the method is Synchronized.
Does this help?