nieprawidłowy assuption jest
Jeżeli tylko jeden procesor istnieje, wątki będą działać kolejno.
Sposób wykonywania wątków zależy od środowiska wykonawczego. W języku java istnieją pewne definicje, że niektóre części kodu nie będą powodować synchronizacji z innymi wątkami, a zatem nie spowodują (potencjalnego) zmiany harmonogramu wątków.
Zasadniczo system operacyjny będzie odpowiedzialny za planowanie jednostek wykonawczych. W dawnych czasach większość takich podmiotów była procesami. Teraz może być przez procesy i wątki (niektóre harmonogramują tylko na poziomie wątku). Dla uproszczenia niech ssume OS zajmuje się tylko wątkami.
System operacyjny może zezwolić na uruchomienie wątku, dopóki nie osiągnie punktu, w którym nie może kontynuować, np. oczekiwanie na operację I/O do cpmplete. Jest to dobre dla wątku, ponieważ może wykorzystać procesor dla max. Jest to szkodliwe dla wszystkich innych wątków, które chcą samodzielnie wykonać kilka cykli procesora. (Generalnie zawsze będzie więcej wątków niż dostępnych procesorów. Więc problem jest niezależny od liczby procesorów.) Aby poprawić interaktywne zachowanie, system operacyjny może używać wycinków czasowych, które umożliwiają działanie wątku przez określony czas. Po wygaśnięciu wycinka czasu wątek jest usuwany z procesora, a system operacyjny wybiera nowy wątek do uruchomienia (może nawet zostać właśnie przerwany).
Pozwoli to na postęp każdego wątku (dodając trochę narzutu do planowania). W ten sposób, nawet w systemie z jednym procesorem, wątki moje (zdają) działać równolegle.
Tak więc dla systemu operacyjnego nie ma żadnego znaczenia, czy zestaw wątków jest wynikiem pojedynczego użytkownika (lub nawet z pojedynczego połączenia z aplikacją internetową) lub został utworzony przez wielu użytkowników i połączenia internetowe.
jaki rodzaj aplikacji? – ArchLicher
aplikacja internetowa napisana w języku Java, wdrożona na serwerze Tomcat – user2296988