不要管他的说法,就是不允许两个操作同时操作该变量。
方法就是只能该对象获取锁时才可能执行,其他没有锁的不能执行,也是防止两个操作同时进行会导致数据的异常(不是指Java的异常类概念的异常啊)。
比如你push数据然后才pop但是如果,push没完成时pop会怎样呢?主要用于多线程时防止一个方法执行完前执行另一个操作。
有synchronized 方法、变量(一般建议声明成private)、和块(保证这个块的完整性,以免类似方法的问题发生)。
变量是对他操作时必须要操作者有锁,否则直到他获得锁才会自行。