2

我知道 Struts 2 Actions 是线程安全的。但是,如果这些 Action 类包含对实用程序静态方法的方法调用,会发生什么?线程安全会受到影响吗?

采用一个实用方法来解析上传的 excel 文件等。如果要声明该方法是静态的,它应该同步吗?

更新:

我只是在读取文件,并且文件已提交给操作,因此它本身应该是线程安全的......但是由于解析是在实用程序方法中完成的,我怀疑是否需要同步。但显然,如果您只访问方法范围变量,它应该是线程安全的。但是像 File 这样的参数是否属于该类别?

4

1 回答 1

3

根据我的理解,除非您在线程之间共享数据,否则线程安全不会受到损害。您必须注意原子性、可见性等。

如果在每个线程执行堆栈中复制了任何方法级别的变量,并且如果有任何共享数据,则只会出现竞争条件,为此我们需要注意。

虽然堆栈对于当前线程来说是本地的,但是可以引用该堆栈上的共享对象。

于 2012-08-08T05:24:42.783 回答