Synchronized使用心得

来源:互联网 发布:linux close_wait 编辑:程序博客网 时间:2024/05/17 00:11

synchronized关键字修饰方法后,程序将根据调用此方法的对象的锁来判断是否能调用此方法。

 

对一个类的instance method,则当此方法被一个线程调用时,其他线程不能再通过同一个对象调用此方法(可以通过这个类的另一个对象来调用这个方法)。

 

对一个类的static method,则当一个线程通过类对象调用此方法时,其他线程不能再通过类对象调用此方法。由于类对象在类加载时由虚拟机创建,只有一个,所以同一时刻此方法只能被一个线程调用。

 

servlet程序中,容器只实例化一个servlet对象,多个用户访问的是同一个servlet对象,因此对servlet的方法加同步修饰,可以防止多个用户同时调用一个方法,避免共享冲突。

 

创建多线程程序时,在子线程中通过一个对象调用一个类的instance方法时,应该在主线程创建这个对象,将对象的引用通过子线程的构造函数或其他接口方法传入子线程,供子线程使用。

 
原创粉丝点击