-
修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁
-
修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁
-
修饰代码块,指定加锁对象,对指定对象加锁,进入同步代码快前要获得指定对象的锁。
-
-
像上面的窗口卖票的例子里,就是修饰同步代码块
-
每次当线程进入synchronized包裹的代码块时就会要求当前线程持有ob对象锁,
-
如果当前有其他线程正持有该对象锁,那么新到的线程就必须等待,
-
这样也就保证了每次只有一个线程执行卖票操作
-
如果没写大括号,if下面的第一行归if管,其他的行不归if管,如果写大括号,括号的所有内容都归if管。
如有不对,请指正