请大家指点指点:当一个线程进入一个类的synchornixed方法,其他的线程能不能进入这个类的其他非synchronized方法呢?

解决方案 »

  1.   


        【锁】对应的就是【钥匙】,现在把代码块比作一个房子:没有synchronized (锁) 的代码就是房子的外墙,不需要钥匙也能看得见;而被锁住的代码就是房子的内部,需要开锁后进去才能看得见。
        只要拿到钥匙就能进屋 (访问被保护的代码)。但是钥匙只有一条,所以你需要排队领钥匙,等上一个人(线程)出来把钥匙交给你了,你才能进去。
        这样保证了一次只能一个人进屋(一个线程访问),避免了数据的冲突。想进去的人需要排队等钥匙,就是线程的阻塞。
    -------------------------------------------------------------
        楼主的问题,就是一个人拿钥匙进屋了,另一个人能不能看得见房子的外墙? 这显然是“可以”的。