2016-11-13 4 views
0

Ich habe diese Links verwiesen aber immer noch Zweifel
concurrent request to singleton bean
another less relevant linkParallele Anfragen parallel/sequentiell durch eine Bohne Frühling Singleton verarbeitet werden

Mein Q/Zweifel: Werden die parallelen Anfragen parallel/sequentiell durch eine weiterverarbeitet werden Spring Singleton Bean [da dies nur ein Objekt/Instanz ist] z @Controller, @Service sogar auf Multi-Core-Prozessor (parallele Thread-Ausführung Fähigkeit)

Hoffentlich nicht, aber dann, wie es funktioniert.
Vom ersten Link, habe ich ein gewisses Verständnis - ein Singleton Bean-Objekt, eine Instanz von Bytecode dieser singeton bean - die unabhängig von Thread-Stack zugegriffen wird - aber

Antwort

0

Gemeinsam Fall Ihre Spring-Singleton Verwandte Bilder nicht in der Lage Klasse wird parallel von den verschiedenen Threads bearbeitet.

Spring Bean ist einfach Java-Objekt (kann eingewickelt werden), die im Frühjahr Kontext speichert. Und wie jedes einfache Java-Objekt dieses Objekt parallel bearbeitet werden kann.

Es kann in einigen speziellen Fällen sequentiell verarbeitet werden, zum Beispiel, wenn Sie eine Sperre verwenden, Methoden synchronisieren und andere blockierende Anweisungen.

0

Werden die parallelen Anforderungen parallel/sequentiell durch eine Spring Singleton Bean, z. z.B. @Regler, @Service?

Die Anforderungen für @Controller wird @Service parallel durch die J2EE Container erstellt durch die verschiedenen Fäden verarbeitet werden. Die Anzahl der Threads, die vom J2EE-Container erstellt werden können, ist auf die Speicherverfügbarkeit beschränkt.

Ein einzelnes Objekt kann eine beliebige Anzahl von Anforderungen bedienen (begrenzt durch den wie oben angegebenen Speicher).

Um zu verstehen, dieses Konzept besser, Sie die Spring MVC des nehmen DispatcherServlet (oder jede Servlet mit Standardverhalten), die ein Singleton-Objekt durch den Servlet-Container, die gleichzeitig jede Servlet gleichzeitig mehrere Anfragen verarbeiten kann erstellt werden (von Benutzern/Clients kommen).

Also, wenn Sie die Anzahl der Anfragen steuern wollte von einem Singleton Bean-Objekt verarbeitet werden (Service/Controller/DAO, je nachdem, was Objekt), dann die Anfragen müssen gedrosselt werden oder fügen Sie einfach die Synchronisation zu den Methoden (oder kritischer Abschnitt) der Bohne. Im Allgemeinen wird dies jedoch nicht empfohlen, es sei denn, Sie haben einige Probleme oder befassen sich mit der Atomarität (die Behandlung mehrerer Transaktionen als eine einzige Arbeitseinheit).

Verwandte Themen