Java使用关键字synchronized来执行线程的互斥处理。
synchronized方法
如果声明一个方法时,在前面加上关键字synchronized,那么这个方法就只能由一个线程运行。这种方法称为synchronized方法,有时也成为同步方法。
Bank.java
1 | public class Bank { |
synchronized方法每次只能由一个线程运行。
线程运行完synchronized方法deposit后,释放锁。
获取锁的另一个线程开始运行synchronized方法。
synchronized实例方法和synchronized代码块
1 | //synchronized实例方法 |
synchronized实例方法是使用this的锁来执行线程的互斥处理的。
synchronized静态方法和synchronized代码块
1 | //synchronized静态方法 |
synchronized静态方法是使用该类的类对象的锁来执行线程的互斥处理的。