关于Java Synchronized的使用
代码输出的 i 值都为2,为什么没有锁住Timer类对象 t
class Timer{
private static int i=0;
public synchronized void add(int n)
{
//synchronized (this){
i++;
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
System.out.println("线程" + n + "---" + i);
//}
}
}
public class SynchronizedThread extends Thread{
Timer t = new Timer();
int n;
SynchronizedThread(int n){
this.n = n;
}
@Override
public void run() {
t.add(n);
}
public static void main(String[] args) {
SynchronizedThread t1 = new SynchronizedThread(1);
SynchronizedThread t2 = new SynchronizedThread(2);
t1.start();
t2.start();
}
}