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.