Jak dziala architektura Springa.

0

Witam, mam pare pytan odnosnie tego jak wgl dzialaja serwery do tworzenia aplikacji biznesowych. Jeżeli dajmy na to mamy kontroler,serwis oraz dao to łatwo sobie wyobrazić jaki jest przepływ sterowania. Jednak jak to działa, jeżeli zaczniemy rozważać wielowątkowość? Mam tu parę przemyśleń, wiec proszę o ich skorygowanie. Zatem standardowo kontrolery,serwisy i dao maja zasięg singleton oraz są to tak zwane obiekty bezstanowe. Jeżeli jakiś użytkownik wchodzi w interakcje z serwerem za pomocą URL to tak na prawdę wywołuje jakaś metodę z kontrolera(@ReqestMapping) a potem następuje przepływ danych pomiędzy serwisem dao oraz sama baza, trwa jakiś proces. Jeżeli drugi uzytkownik zacznie kolejny proces to w momencie gdy system przydzieli moc obliczeniowa jego procesowi tamten proces przechodzi w uśpienie i czeka na wznowienie. Tutaj użytkownik nr 2 wywołuje ten sam link z tego samego kontrolera zatem mamy watek aktywny z wywołana ta metoda oraz watek uśpiony z ta sama metoda.
Czyli w teorii trwają 2 wywołania tej samej metody, lecz odbywają się one w innym miejscu w pamięci(tworzenie danych w danej metodzie).Tutaj tez mam pytanie czy kazdy watek ma swój własny adres stosu? W momencie gdy "przeplyw" dociera do bazy danych to watek uzytkownika na serwerze www oczekuje na odpowiedz z bazy danych a tam kazde zadanie odbywa sie w transakcji.

W sumie na poczatek chcialbym wiedziec, czy mniej wiecej tak to sie odbywa, jezeli nie to prosze o nakierowanie ewentualnie jakies ciekawe zrodla. Dzieki za poswiecony czas

1

I tak i nie. JVM nie musi tworzyć osobnego wątku dla każdego użytkownika, tylko raczej leci z pewną pulą wątków. Jeśli wszystkie są w użyciu to klient po prostu czeka. Tak samo z połączeniami do bazy danych - w dużych aplikacjach są na to pule.
Tak, wątek ma swój własny stos.

Nie wiem tylko co to ma wspólnego ze Springiem bo twoje pytanie dotyczy generalnie idei współbieżności.

0

W sumie to co tytułu wątku to racja, po prostu chcialem opisac to na takim przykladzie, dzięki .

1 użytkowników online, w tym zalogowanych: 0, gości: 1