【问题标题】:Regarding event listeners in servlets关于 servlet 中的事件侦听器
【发布时间】:2014-02-24 17:32:06
【问题描述】:

直接来自这个documentation:

在多线程应用程序中,可能会发生属性更改 同时地。 servlet 容器不需要 同步生成的通知;监听器类 他们自己负责在这样的情况下维护数据完整性 情况。

据我所知,所有或大多数应用程序都是多线程的,因为 Web 服务器会为每个客户端的请求创建一个新线程。该段只是说如果有一些共享的可写资源我们需要同步对吗?

提前致谢。

【问题讨论】:

    标签: java servlets listener


    【解决方案1】:

    取决于属性更改的频率以及可写资源是否可能具有不希望的状态。
    如果两个通知几乎同时到达侦听器,同步不保证侦听器处理通知的顺序(请参阅this 答案)。这可能会导致可写资源达到不希望的状态(例如,在添加之前处理删除)。在这种情况下,您将需要像fair lock 这样的东西,这是有代价的:侦听器将在给定时间内处理更少的通知。如果这是一个问题,您可以尝试使可写资源本身是线程安全的,例如使用ConcurrentHashMap。

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 2012-02-01
      • 2018-09-04
      • 2012-07-03
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      相关资源
      最近更新 更多