- synchronized 关键字是JAVA中内置的语言级同步原语,可以通过使用这个关键字实现多线程间访问之间的同步。synchronized 关键字可以作为函数的修饰符,也可以直接在函数语句中使用,也就是平时说的同步方法和同步语句。从作用域上来看,它可以分为作用于某个实例对象内和某个类的范围内。也可以实现在类的范围内的某个方法的同步,或是让一个类的所有对象都在某个代码块的使用上同步:
public synchronized static void test(){
}
public class Tester{
public void test(){
synchronized(Tester.class){
//代码....
}
}
}
- 此时的对象锁是Tester类的所有对象,即假设Tester t1,Tester t2两个对象,当一个线程在执行完t1的同步语句之前,另一个线程也不能执行t2的同步语句。