关于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();
}
}
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();
}
}
...全文
相关推荐
Java中synchronized正确使用方法解析
主要介绍了Java中syncronized正确使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java中synchronized用法
java中synchronized用法
[JAVA][synchronized的使用]
[JAVA][synchronized的使用]
Java使用synchronized实现互斥锁功能示例
主要介绍了Java使用synchronized实现互斥锁功能,结合实例形式分析了Java使用synchronized互斥锁功能简单实现方法与操作技巧,需要的朋友可以参考下
java-synchronized 嵌套使用代码详解
本文以synchronized 的同步造成了死锁为例,介绍了java-synchronized 嵌套使用代码详解,同时对锁和死锁的概念进行了说明,需要的朋友可以了解下。


Java SE
