关于Java Synchronized的使用

圣殿幽灵骑士 圣殿幽灵骑士 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码输出的 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();

}

}
...全文
评论 9
收藏 已收藏
分享
返回顶部
圣殿幽灵骑士
Java SE 62,621 成员 307,251 内容