Heim >Java >javaLernprogramm >Warum wird von benutzerdefinierten Threads in Java EE-Containern abgeraten?

Warum wird von benutzerdefinierten Threads in Java EE-Containern abgeraten?

DDD
DDDOriginal
2024-12-09 18:41:12361Durchsuche

Why Are Custom Threads Discouraged in Java EE Containers?

Warum davon abgeraten wird, Threads in Java EE-Containern zu erzeugen

In der Java EE-Entwicklung wird generell davon abgeraten, benutzerdefinierte Threads innerhalb des Containers zu erzeugen. Das Verständnis der Gründe für dieses Verbot hilft bei der Klärung optimaler Entwicklungspraktiken.

Begründung

Java EE-Container verwalten und überwachen die Ressourcen in ihrer Umgebung streng. Das Erstellen benutzerdefinierter Threads stört diese Verwaltung, da ihnen der Zugriff auf den Thread-spezifischen Kontext fehlt, der für den Zugriff auf JNDI-Ressourcen wie JMS-Verbindungsfabriken und -Datenquellen erforderlich ist.

Alternative Ansätze

Trotz der Notwendigkeit asynchroner Aufgaben wie Für E-Mail-Verteilungs- und Bereinigungsaufgaben gibt es geeignete Möglichkeiten, dies innerhalb von Java EE zu erreichen Container:

  • Commonj WorkManager (für WebSphere und WebLogic): Dies stellt einen verwalteten und überwachten Mechanismus zum Spawnen von Threads mit Zugriff auf den erforderlichen Kontext bereit.
  • Java EE Connector Architecture (JCA): JCA ermöglicht die Integration mit externen Ressourcenadaptern und bietet eine Schnittstelle für die Verwaltung geplanter Aufgaben oder Ereignisse Verarbeitung.
  • Message-Driven Beans (MDBs): MDBs dienen als asynchrone Ereignis-Listener und bieten eine Container-verwaltete Lösung für die Nachrichtenverarbeitung.
  • Asynchrone Servlets : Asynchrone Servlets wurden in Java EE 6 eingeführt und ermöglichen die Verarbeitung lang laufender Aufgaben, ohne die Anforderung zu blockieren Thread.

Entwicklung von Best Practices

Beachten Sie, dass die Verhinderung des Spawnens von Threads in Java EE-Containern in früheren Versionen (ca. 2009) relevanter war. Fortschritte in Java EE haben seitdem die Unterstützung für asynchrone Verarbeitung und verwaltete Thread-Pools verbessert. Das Verständnis der zugrunde liegenden Gründe für die historische Entmutigung bleibt jedoch für das Verständnis und die Einhaltung empfohlener Entwicklungspraktiken wertvoll.

Das obige ist der detaillierte Inhalt vonWarum wird von benutzerdefinierten Threads in Java EE-Containern abgeraten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn