同步加锁的是对象,而不是代码。
一个对象中,多个线程使用同步锁。
以下代码为两个对象使用同步锁,没有效果的演示demo。
package test;
public class Foo extends Thread{
private int val;
public Foo(int v){
val = v;
}
public synchronized void printVal(int v){
// while(true)
for (int i = 0; i < 10; i++) {
System.out.println(v);
}
}
public void run(){
printVal(val);
}
}
package test;
public class SyncTest {
public static void main(String args[]) {
Foo f1 = new Foo(1);
f1.start();
Foo f2 = new Foo(3);
f2.start();
}
}