1

Servlet 不是线程安全的。所以如果我使用一个类的静态函数,当多个请求同时到来时会发生什么。他们将如何处理静态函数?

4

3 回答 3

4

如果访问共享的可变数据,则必须对其进行同步。如果数据是不可变的或只读的或在堆栈上,你应该没问题。

于 2012-04-18T09:58:30.660 回答
1

这取决于你有什么样的静态方法,它是否是无状态的。如果它是无状态的,并且不引用您方法范围之外的任何内容,它将是线程安全的。

于 2012-04-18T10:09:10.400 回答
0

如果您在 servlet 中使用静态方法,则需要通过仅在变量状态可能更改时使用局部变量来使它们成为线程安全的,或者如果它们不更改或使用同步访问方法则使用静态变量

并且您可以通过实现 SingleThreadModle 接口或“同步”构造来确保函数线程安全。

于 2012-11-20T12:04:53.223 回答