1. class Bank{
    2. private Bank(){}
    3. private static Bank instance = null;
    4. public static Bank getInstance(){
    5. //方式一:效率稍差:如果已经创建了一个对象,后续进程都要等待
    6. // synchronized (Bank.class) {
    7. // if(instance == null){
    8. //
    9. // instance = new Bank();
    10. // }
    11. // return instance;
    12. // }
    13. //方式二:效率更高:如果已经创建了一个对象,只有前几个进入if的进程需要等待,后续进程不再等待
    14. if(instance == null){
    15. synchronized (Bank.class) {
    16. if(instance == null){
    17. instance = new Bank();
    18. }
    19. }
    20. }
    21. return instance;
    22. }