Pula wątków, jak, kiedy i kto używał:
Po pierwsze, kiedy używamy / instalujemy Node na komputerze, uruchamia on proces wśród innych procesów, który nazywa się procesem węzła w komputerze i działa, dopóki go nie zabijesz. A ten proces to nasz tak zwany pojedynczy wątek.
Tak więc mechanizm pojedynczego wątku ułatwia blokowanie aplikacji węzła, ale jest to jedna z unikalnych funkcji, które Node.js wnosi do tabeli. Tak więc, ponownie, jeśli uruchomisz aplikację węzła, będzie ona działać tylko w jednym wątku. Nieważne, czy masz 1 czy milion użytkowników jednocześnie uzyskujących dostęp do Twojej aplikacji.
Zrozummy więc dokładnie, co dzieje się w pojedynczym wątku nodejs po uruchomieniu aplikacji węzła. Najpierw program jest inicjowany, następnie wykonywany jest cały kod najwyższego poziomu, co oznacza wszystkie kody, które nie znajdują się w żadnej funkcji zwrotnej ( pamiętaj, że wszystkie kody wewnątrz wszystkich funkcji zwrotnych zostaną wykonane w pętli zdarzeń ).
Następnie cały kod modułów wykonywany, a następnie rejestrują wszystkie wywołania zwrotne, w końcu pętla zdarzeń została uruchomiona dla Twojej aplikacji.
Tak więc, jak omówiliśmy wcześniej, wszystkie funkcje wywołania zwrotnego i kody wewnątrz tych funkcji będą wykonywane w pętli zdarzeń. W pętli zdarzeń obciążenia rozkładane są w różnych fazach. W każdym razie nie będę tutaj omawiał pętli zdarzeń.
Cóż, w celu lepszego zrozumienia puli wątków, proszę, abyś wyobraził sobie, że w pętli zdarzeń kody wewnątrz jednej funkcji zwrotnej są wykonywane po zakończeniu wykonywania kodów wewnątrz innej funkcji zwrotnej, teraz, jeśli są jakieś zadania, są w rzeczywistości zbyt ciężkie. Następnie zablokowaliby nasz pojedynczy wątek nodejs. I tu właśnie pojawia się pula wątków, która jest podobna do pętli zdarzeń, dostarczana do Node.js przez bibliotekę libuv.
Tak więc pula wątków nie jest częścią samego nodejs, jest dostarczana przez libuv, aby odciążyć duże obciążenia na libuv, a libuv wykona te kody we własnych wątkach i po wykonaniu libuv zwróci wyniki do zdarzenia w pętli zdarzeń.
Pula wątków daje nam cztery dodatkowe wątki, które są całkowicie oddzielone od głównego pojedynczego wątku. W rzeczywistości możemy skonfigurować do 128 wątków.
Wszystkie te wątki razem utworzyły pulę wątków. a pętla zdarzeń może następnie automatycznie przenosić ciężkie zadania do puli wątków.
Zabawne jest to, że wszystko to dzieje się automatycznie za kulisami. To nie my, programiści, decydujemy, co trafia do puli wątków, a co nie.
Do puli wątków trafia wiele zadań, takich jak
-> All operations dealing with files
->Everyting is related to cryptography, like caching passwords.
->All compression stuff
->DNS lookups