Methods 在Struts 1 Action类中使用同步实例方法意味着什么?

Methods 在Struts 1 Action类中使用同步实例方法意味着什么?,methods,struts,synchronized,struts1,Methods,Struts,Synchronized,Struts1,我想检查在Struts 1 Action类中使用同步实例方法意味着什么 差不多 public synchronized String checkAction(){ ... } 这意味着checkAction方法将由封闭对象的内在锁(Action类对象的锁)进行同步。因此,一次只有一个线程能够访问checkAction方法 在Struts 1中,Action类不是线程安全的。因此,多个线程(例如,为多个请求提供服务)将访问Action类的同一个实例。该方法是否需要同步?我不确定——只有你能从方

我想检查在Struts 1 Action类中使用同步实例方法意味着什么

差不多

public synchronized String checkAction(){ ... } 

这意味着checkAction方法将由封闭对象的内在锁(Action类对象的锁)进行同步。因此,一次只有一个线程能够访问checkAction方法


在Struts 1中,Action类不是线程安全的。因此,多个线程(例如,为多个请求提供服务)将访问Action类的同一个实例。该方法是否需要同步?我不确定——只有你能从方法中发生的事情中辨别出来。只要它不访问Action类的实例变量或一次只能由单个线程执行的操作,那么同步可能就没有必要了。

这意味着checkAction方法将由封闭对象的内在锁(Action类对象的锁)进行同步。因此,一次只有一个线程能够访问checkAction方法


在Struts 1中,Action类不是线程安全的。因此,多个线程(例如,为多个请求提供服务)将访问Action类的同一个实例。该方法是否需要同步?我不确定——只有你能从方法中发生的事情中辨别出来。只要它不是访问Action类的实例变量,也不是执行一次只能由单个线程执行的操作,那么同步可能就没有必要了。

我可以解释一下上面对答案的解释,以确保我正确理解这一点。这意味着,由于struts 1操作类不是线程安全的,并且因为它们是单例的,所以在struts操作类中创建一个方法一次只允许访问一个线程。thx.在Action类中同步一个方法一次只允许访问一个线程。如果它没有同步,那么抛出的线程就可以进来(通常是为什么不使用实例变量来保存ActionBean中的状态)是的,同步并不是这个问题的正确解决方案(因为它会造成瓶颈)。正确的解决方案是只使用局部变量。如果没有实例变量,则不需要同步。如果你想要实例变量,那么创建一个helper类,将它们放在那里,并为每个请求实例化一个helper。我可以解释一下我对上面答案的解释,以确保我正确理解这一点。这意味着,由于struts 1操作类不是线程安全的,并且因为它们是单例的,所以在struts操作类中创建一个方法一次只允许访问一个线程。thx.在Action类中同步一个方法一次只允许访问一个线程。如果它没有同步,那么抛出的线程就可以进来(通常是为什么不使用实例变量来保存ActionBean中的状态)是的,同步并不是这个问题的正确解决方案(因为它会造成瓶颈)。正确的解决方案是只使用局部变量。如果没有实例变量,则不需要同步。如果需要实例变量,那么创建一个helper类,将它们放入其中,并为每个请求实例化一个helper。