Składnia funkcji puli ():
Już w klasie procesowej skonstruowalibyśmy procedury. Chociaż klasa basenu wydaje się bardziej przydatna, ponieważ możemy sobie z tym poradzić dynamicznie. Aby skonstruować obiekt basenowy, użyj składni:
Każdy parametr jest opcjonalny. „Initargs” jest trzecim parametrem przekazanym do metody, zostanie również podany drugi parametr „inicjalizatora”, który jest używany do inicjalizacji. „Maxtasksperchild” oznacza całkowitą liczbę operacji, które podano każdy proces dziecięcy. Proces zostałby zaktualizowany o nową procedurę pracowników po zakończeniu operacji.
Omówmy dalszą pulę wieloprocesową:
Przykład nr 1:
Rzućmy okiem na poniższą ilustrację, która oblicza kwadrat liczby całkowitej i śpi kod przez jeden sekundę.
Na początku kodu musimy zaimportować moduł czasowy i moduł puli. Biblioteka puli zostanie zintegrowana z multiprocessing. Definiujemy funkcję kwadrat (). Następnie wykorzystujemy metodę print (), aby pokazać wiadomość „Tutaj zaczyna się proces”. Tutaj otrzymujemy kwadrat liczby, mnożąc liczbę ze sobą. Jeszcze raz wywołujemy funkcję print (), aby pokazać kwadrat zdefiniowanego numeru. Definiujemy funkcję sleep (), aby ustawić ramy czasowe kodu.
Teraz instrukcja drukowania drukuje linię, która pokazuje, że proces został zakończony. Zacznijmy od ciała głównej funkcji. Wzywamy metodę czasu () czasu modułu. Konstruujemy element klasy puli. Metoda, którą chcielibyśmy powtórzyć, i podano iterację, została dostarczona jako parametry metody map ().
Dodatkowo akceptuje dodatkowy parametr „fragmentu”, który dzieli iteracją na segmenty o równych rozmiarach i otrzymuje ten jako odrębny. Parametr do metody map () jest stosowany jako zakres. Aby odmówić nowych operacji, skorzystaj z puli.Metoda blisko ().
Przykład nr 2:
W tym przypadku ustawiamy ramkę danych kodu na 2 sekundy za pomocą metody sleep ().
Pakiet czasowy i pakiet puli muszą być importowane na początku programu. Multiprocessing zostanie włączony do biblioteki puli. Metoda Square () jest zdefiniowana. Wiadomość „Proces zaczyna się teraz” jest następnie wyświetlany przy użyciu funkcji print (). Mnożąc wartości razem, możemy uzyskać kwadrat liczby w tym scenariuszu.
Aby ustawić czas kodu, wywołujemy metodę Sleep (). Ponadto polecenie wydruku wyświetla wiersz wskazujący, że proces się skończył. W ramach głównej funkcji wywołamy metodę puli (). Mapa funkcji () została użyta w następnym wierszu. Ta funkcja zawiera dwa parametry. Pierwszy argument pokazuje kwadrat liczby. A drugi parametr używa metody Range ().
Definiujemy niższe i wyższe limity w funkcji zakresu (). Ostatecznie dzwoniliśmy do Print (), aby pokazać wynik.
Przykład nr 3:
Niezwykle podobny do basenu.Funkcja map () to pula.imap (). Rozróżnienie polega na tym, że wynik każdego elementu jest podawany tak natychmiast, jak jest przetwarzany, zamiast czekać na zakończenie wszystkich elementów. Dodatkowo iterable jest przekształcane w zestaw przez funkcję map (). Technika IMAP () nie robi tego.
Po pierwsze, musimy uwzględnić ramy czasu i puli. Bierzemy bibliotekę puli z pakietu wieloprocesowego. Nazywamy funkcję kwadratu (). Ta funkcja zawiera wymaganą liczbę jako jej argument. Aby wyświetlić komunikat wskazujący, że proces się rozpoczął, wywołyliśmy funkcję print (). Mnożąc wartości razem w tym przypadku, możemy uzyskać kwadrat określonej liczby. Aby określić czas kodu, wywoływamy metodę snu (). Stwierdzenie wskazujące, że proces zakończył się, został wydrukowany przez funkcję drukowania. Kwadrat określonej liczby całkowitej jest następnie zwracany przez funkcję.
Zacznijmy teraz ciało głównej funkcji. Funkcja puli () będzie używana. Następny wiersz wykorzystuje metodę Map (). Istnieją dwa parametry dla tej metody. Kwadrat liczby całkowitej jest dostarczany jako pierwszy parametr. Funkcja Range () jest używana jako drugi argument. W ramach metody zakresu () określono dolne i górne ograniczenia. Przed zakończeniem kodu będziemy używać „do„ dla ”pętli. Zainicjujemy zmienną pętli. Ta pętla iteruje się, dopóki dany warunek nie zostanie spełniony. Następnie stosuje się metodę print (), aby reprezentować wynik.
Wniosek
W tym przewodniku rozmawialiśmy o wieloprocesowej puli Pythona. Gdy wiele procesów musi działać jednocześnie lub musiałaby zostać przyspieszona, multiprocessing jest niezbędny. Gdy proces działa na jednym wątku, jego możliwości są ograniczone; W przeciwnym razie rozciągałoby to macki przez liczne wątki. Python oferuje prosty interfejs do wdrożenia multiprocessingu, jeśli czasochłonna operacja może wykonywać jednocześnie, a cały system obsługuje wiele architektur procesorów. Wykonaliśmy trzy instancje, w których ustawiliśmy ramy czasowe kodu.