public class SynchronizedObjectLock implements Runnable {
static SynchronizedObjectLock instance1 = new SynchronizedObjectLock();
static SynchronizedObjectLock instance2 = new SynchronizedObjectLock();
@Override
public void run() {
method();
}
// synchronized
⽤
在
普
通
⽅
法
上
,
默
认
的
锁
就
是
this
,
当
前
实
例
public synchronized void method() {
System.out.println("
我
是
线
程
" + Thread.currentThread().getName());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "
结
束
");
}
public static void main(String[] args) {
// t1
和
t2
对
应
的
this
是
两个不
同
的
实
例
,
所
以代
码
不
会
串
⾏
Thread t1 = new Thread(instance1);
Thread t2 = new Thread(instance2);
t1.start();
t2.start();
}
}
public class SynchronizedObjectLock implements Runnable {
static SynchronizedObjectLock instance1 = new SynchronizedObjectLock();
static SynchronizedObjectLock instance2 = new SynchronizedObjectLock();
@Override
评论0