当A线程调用同步方法时 this 代表A ,当B线程调用同步方法时 this 代表B ,老师说的是同一把锁,有点不解 ,明明是2个不同线程对象作者: GoodBoy123 时间: 2014-8-4 21:01
这个this是锁所在的本类对象。不是线程。如果你觉得this不好理解你可以自己创建一个对象然后当作为锁。作者: MGC 时间: 2014-8-4 21:03
涨姿势来了作者: supertoy 时间: 2014-8-4 21:07
public class Calc {
public int k = 0;
public synchronized void add(){
k++;
System.out.println(k);
}
public static void main(String[] args) {
final Calc a = new Calc();
for (int i = 0; i < 5; i++) {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
a.add();
}
}
}).start();
}