不是翻译,是我的理解:SingleThreadModel单线程模式接口的servlet在同一时间内只有一个线程运行它的service方法。我们知道平时我们说servlet是多线程的,对吧?singlethreadmodel为什么呢?容器可以用池来管理这种singlethreadmodel,这样就可以实现多个并发访问了。

解决方案 »

  1.   

    singleThreadModel接口的使用保证了在给定的servlet实例的服务方法内一次只执行一个线程。鉴于容易可以选择将这些对象放入池中,所以值得一提的是,这种保证只对每个servlet实例适合。对象一次可以由多个servlet实例访问,例如HttpSession实例,在任何时间都可以被多个servet得到,包括那些实现了SingleThreadModel的servlet。照字面翻译,多多原谅。。
      

  2.   

    The use of the SingleThreadModel interface guarantees that only one thread at a time will execute in a given servlet instance’s service method. It is important to note that this guarantee only applies to each servlet instance, since the container may choose to pool such objects.Objects that are accessible to more than one servlet instance at a time, such as instances of HttpSession, may be available at any particular time to multiple servlets, including those that implement SingleThreadModel.
    使用单线程模式接口可以保证在某一时刻一个特定SERVLET实例的服务方法中只有一个线程在运行。必须指出的是由于容器可能会缓冲这样的对象,此规则适用于每一个SERVLET实例。可以一次被不止一个SERVLET实例访问的对象,如HTTPSESSION,可能在某一特定时刻对很多SERVLET都是可用的,其中也包括那些只实现了单线程模式的。
      

  3.   

    我的理解是这样的:
    比如说CONTAINER中有SERVLET1,SERVLET2,SERVLET3。
      

  4.   

    在某一时刻只能有一个线程来运行SERVLET1实例的SERVICE方法,
    在某一时刻只能有一个线程来运行SERVLET2实例的SERVICE方法,
    在某一时刻只能有一个线程来运行SERVLET3实例的SERVICE方法,但是不保证SERVICE方法只有一个线程在调用,就是说SERVLET1,SERVLET2,SERVLET3的SERVICE方法可能是同一个方法,比如说HTTPSESSION。
      

  5.   

    就是说在某一时刻,
    只有thread1在调用servlet1的HTTPSESSION
    只有thread2在调用servlet2的HTTPSESSION
    只有thread3在调用servlet3的HTTPSESSION
    但是却有多个线程thread1,thred2,thread3在调用httpsession