版权声明:本文为博主原创文章,转载请说明出处 https://blog.csdn.net/u010002184/article/details/82910643
是线程获取对象的锁,且该线程执行对象所属类中的同步方法! 当然线程也是对象,也有锁,锁只是对象的一个标志位。 哪个线程获得了SynClass的对象锁,则哪个线程进入同步方法中执行
public class WaitTest1 {
public static void main(String[] args) {
SynClass synClass = new SynClass();
synClass.f1();//主线程获取synClass的对象锁
// SynClass.f1...main
Thread t4 = new Thread(new MyRunnable4(), "t4");
t4.start();////线程t4获取synClass的对象锁
// SynClass.f1...t4
}
}
class SynClass {
//哪个线程获得了SynClass的对象锁,则哪个线程进入同步方法中执行
public synchronized void f1() {
System.out.println("SynClass.f1..." + Thread.currentThread().getName());
}
}
class MyRunnable4 implements Runnable {
@Override
public void run() {
SynClass synClass = new SynClass();
synClass.f1();
}
}