public class SysFunction {
public synchronized void test1(){
System.out.println("同步方法1开始");
for (int i = 0; i <100; i++) {
System.out.println("同步方法1");
}
System.out.println("方法1结束");
}
public synchronized void test2(){
System.out.println("同步方法2开始");
for (int i = 0; i <100 ; i++) {
System.out.println("同步方法2");
}
System.out.println("方法2结束");
}
public static void main(String[] args) {
SysFunction sysFunction= new SysFunction();
Thread t1 = new Thread() {
@Override
public void run() {
sysFunction.test1();
}
};
Thread t2 = new Thread() {
@Override
public void run() {
sysFunction.test2();
}
};
try {
t1.join();
t2.join();
t1.start();
t2.start();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
答案 不可以 。因为同一个实例的加锁对象相同 只有一把。