synchronized标记 和synchronized 方法有什么区别
为什么这种程序不能实现同步呢
//Thread类run方法
public void run() {
buy(commodity);
}
public synchronized void buy(int commodity){
Shop.allCommodity = Shop.allCommodity - commodity;
System.out.println(Thread.currentThread().getName() + "购买了" + commodity
+ "件商品" + "剩余" + Shop.allCommodity);
}
为什么这种程序能实现同步
//Thread类run方法
public void run() {
synchronized(对象){
buy(commodity);
}
}
public void buy(int commodity){
Shop.allCommodity = Shop.allCommodity - commodity;
System.out.println(Thread.currentThread().getName() + "购买了" + commodity
+ "件商品" + "剩余" + Shop.allCommodity);
}