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