import java.util.concurrent.*;
class DualSynch1 extends Thread{
private Object SynObject=new Object();
public synchronized void f(){
for(int i=0;i<5;i++){
System.out.println("f()");
Thread.yield();
}
}
public void g(){
synchronized(SynObject){
for(int i=0;i<5;i++){
System.out.println("g()");
Thread.yield();
}
}
}
public synchronized void s() {
for (int i = 0; i < 5; i++) {
System.out.println("s()");
Thread.yield();
}
}
public void run(){
f();
s();
}
}
public class SynObject {
public static void main(String[] args) {
ExecutorService exec=Executors.newCachedThreadPool(); 
for (int i = 0; i < 5; i++) {
DualSynch1 a=new DualSynch1();
exec.execute(a);
a.g();
}
}
}