5.13. Das Problem in Zeitlupe ...

Folgendes ist mit Kims Test-Servlet passiert:

❶ Servlet A setzt das Kontextattribut »foo« auf den Wert »22«.

String

String

Thread A

ServletContext

❷ Servlet A setzt das Kontextattribut »bar« auf den Wert »42«.

String

String

Thread A

ServletContext

❸ Thread B wird zum aktiven Thread (Thread A wechselt zu »ausführbar, aber nicht aktiv«) und setzt das Kontextattribut »bar« auf den Wert »16«. (Die 42 ist damit verschwunden.)

String

String

Thread B

ServletContext

❹ Thread A wird erneut zum aktiven Thread, holt sich den Wert von »bar« und gibt ihn in der Antwort aus.

String

String

Thread A

ServletContext

"bar"

"bar"

String

String

Thread A

ServletContext String

"16"

Thread B

"16"

ServletContext String

getServletContext().setAttribute("foo", ...

Get Servlets und JSPs™ von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.