synchronized语法
synchronized( ){
}
synchronized 关键字是加锁的意思,用它来修饰方法就表示给该方法加了锁,从而达到线程同步的效果;用它来修饰代码块就表示给该代码块加了锁,从而达到线程同步的效果。
括号中的内容:
1.同一个对象:最低标准是this,或者是当前对象的实例变量 (切记不是局部,若是局部的话,可能会每次都产生一个新的对象,那么每个线程进来后都可以直接进入该代码块,没有实现线程排队)。
2.同类的不同对象:最低标准是用类级别的静态变量、当前类的类对象、或者这两个对象共享的一个变量。
3.不同类不同对象:用Object类的Class对象、共享对象。
关键思想: 括号中只要是对象共享的就行。