@SessionScoped bean 有并发问题吗?
Do @SessionScoped beans have concurrency issues?
显然,在 Web 应用上下文中很容易有多个并行请求访问同一个 @SessionScoped bean。我认为在这些请求中访问 @SessionScoped bean 时必须显式控制同步是否正确?
取决于你的意思:
explicitly control synchronization when access the @SessionScoped bean within those requests
您是对的,可能有多个线程并行访问 @SessionScoped
bean。所以通常你必须注意线程安全。您是否需要显式控制同步(或完全同步)取决于共享状态如何从不同线程使用或修改。如果您使用 java.util.concurrent
或 java.util.concurrent.atomic
中的 类,您可以在没有单个 synchronized
语句的情况下实现完美的线程安全。
但是,是的,你必须注意线程安全。
显然,在 Web 应用上下文中很容易有多个并行请求访问同一个 @SessionScoped bean。我认为在这些请求中访问 @SessionScoped bean 时必须显式控制同步是否正确?
取决于你的意思:
explicitly control synchronization when access the @SessionScoped bean within those requests
您是对的,可能有多个线程并行访问 @SessionScoped
bean。所以通常你必须注意线程安全。您是否需要显式控制同步(或完全同步)取决于共享状态如何从不同线程使用或修改。如果您使用 java.util.concurrent
或 java.util.concurrent.atomic
中的 类,您可以在没有单个 synchronized
语句的情况下实现完美的线程安全。
但是,是的,你必须注意线程安全。