Python współbieżne futures

Python współbieżne futures
„Podobnie do tego, jak możemy konstruować i wykorzystać pulę wątków, pulę procesów może być tworzona i używana. Pule procesów to kolekcje pracy na biegu jałowym, wcześniej utworzone procesy, które czekają na zadania. Ilekroć potrzebujemy wykonywania kilku działań, korzystanie z puli procesów jest lepsze do budowy innowacyjnych procedur dla każdego działania. Równolegle.Futures to element znaleziony w standardowej bibliotece Pythona. Aby dać programistom podwyższony interfejs do rozpoczęcia jednoczesnych procesów, pakiet ten został wprowadzony w Python 3.2.

Interfejs do wykonywania zadań wykorzystujących pulę wątków lub procesów jest dostarczany przez tę warstwę enkapsulacyjną na komponentach wielozadaniowych i wieloznacznych Pythona. Równolegle.Moduł Futures Python wymyślił abstrakcyjny „wykonawca” wraz z konkretnymi podklasami, które są używane zamiast klasy „Executor”. To dlatego, że klasy „wykonawcy” nie można wykorzystać bezpośrednio w kodzie."

Przykład 01

Zacznijmy od pierwszej ilustracji naszego artykułu. Pokazamy użycie podklasy ProcessPoolexecutor „Executor” w tej ilustracji, i.mi., Otrzymuj strumień zadań w celu wykonania zadań, ponieważ zatrudnia on wiele produktów. Ten strumień przydziela zadania istniejącym wątkom i planuje ich wykonanie. Rozpoczęliśmy ten program Python z użyciem „równoczesnego.moduł futures ”importowanie podklasy ProcessPoolexecutor tutaj w kodzie.

Następnie importowaliśmy klasę snu modułu czasu w Python poprzez użycie słów kluczowych z i importu. Definiujemy funkcję o nazwie „Wątek”, biorąc w nią zmienną wiadomość. Ta funkcja wykorzystuje funkcję funkcji Call to Sleep () Python, aby wykonać zatrzymanie wykonania tylko na 2 sekundy i zwrócić komunikat do funkcji Main ().

Podczas gdy definicja funkcji main () została uruchomiona od wywołania funkcji „procesPoolexecutor”.Moduł futures do utworzenia puli 5 procesów i zapisania wyniku puli na obiekcie „wykonawcy”. Ten obiekt „wykonawcy” został użyty do wywołania funkcji „Prześlij”, aby utworzyć 5 wątków, przekazując im komunikat „ukończony” w parametrach. Wykonanie funkcji próbowało spać przez 2 sekundy i zwrócić wiadomość. Zwrócony wynik zostanie zapisany w zmiennej „przyszłości”. Nazywaliśmy funkcję „gotów” ze zmienną przyszłej obiektu w instrukcji „wydruku” funkcji Pythona, aby wyświetlić zwrócony wynik, i.mi., prawda czy fałsz.

Następnie używamy funkcji snu, aby wykonanie programu było kontynuowane po 5 sekundach, a następnie sprawdź wynik puli wykonawcy za pomocą wykonanej funkcji przyszłego obiektu przyszłego. Ostatecznie obiekt „przyszłego” został użyty do wywołania wbudowanej funkcji Python równolegle. Moduł futures, aby zobaczyć rzeczywisty wynik, i.mi., Ukończone na końcu.

W ostatnich wierszach widzimy, że funkcja main () została tutaj wywołana. Zapiszmy i wykonajmy nasz kod, aby zobaczyć rzeczywisty wynik dla używania współbieżnego.Pakiety futures w programach Python. Poniższy obraz zawiera również kod wspomnianego wyjaśnienia.

Po uruchomieniu tego programu w Spyder 3, mamy wynik pokazany w narzędziu Spyder3. Po uruchomieniu puli wykonawcy 5 wątków wywołuje funkcję wątku i śpi przez 2 sekundy, a następnie zwraca wiadomość. Ponieważ proces basenu się jeszcze się nie kończy, więc „przyszłość.zrobione „zwraca false i wyświetliśmy wynik„ fałszywy ”. Wykonanie tego programu śpi przez następne 5 sekund, a następnie wyświetla wynik „przyszłości.Znowu ”znowu.

W miarę przekazania 5 sekund, a pula została pomyślnie wykonana, w tym przypadku powraca prawdziwie. W końcu „przyszłość.Wynik ”funkcja wyświetlona komunikat„ zakończony ”dla puli 5 procesów„ Pełne wykonanie. To jest oczekiwany wynik powyższego kodu.

Przykład 02

Rzućmy okiem na inny przykład, aby użyć podklasy ProcessPoolexecutor.moduł futures w Python. Tak więc zaimportowaliśmy tutaj podklasę ProcessPoolexecutor. Następnie zainicjowaliśmy listę „Num” 4 różnych wartości numerycznych, i.mi., 14, 7, 3, 15. W tym programie używamy w sumie 2 funkcji. Wykonanie funkcji Main () rozpoczęło się od zastosowania menedżera kontekstowego procesówPoolexecutor.

Menedżer kontekstowy może być używany jako druga metoda tworzenia instancji ProcessPoolexecutor. Działa podobnie do podejścia pokazanego w poprzednim przykładzie. Najlepszą funkcją Menedżera kontekstowego jest to, jak jest to syntaktycznie atrakcyjne. Więc używamy go tutaj, aby stworzyć pulę 3, i.mi., całkowity pracownicy. Dzięki temu wykonawca używa funkcji map (. Funkcja kostki zwróci sześcien każdego numeru przekazywanego z listy za pomocą formuł „N*n*n” i zapisz zwrócony wynik do zmiennej „R”.

Pętla „dla” ma użyć wyniku „R” dla każdego elementu do wyświetlenia każdej zwróconej wartości z funkcji sześcianu na konsoli za pomocą funkcji „Wydrukuj” ze zmienną „VAL”. Ostatnie 2 linie pokazują użycie wywołania funkcji Main (). Poniższy obraz zawiera również kod wspomnianego wyjaśnienia.

Wyjście pokazuje kostkę wszystkich 4 elementów listy „NUM”. To jest oczekiwany wynik powyższego kodu.

Wniosek

W tym artykule dotyczy użycia „równoczesnego.Futures ”moduł Pythona w programach, aby zobaczyć jego zastosowania. W naszym pierwszym przykładzie wykorzystaliśmy go do utworzenia puli 5 procesów i zwrócenia wyniku przed i po użyciu funkcji snu w kodzie. Następnie wykorzystaliśmy kolejny przykład do konsumpcji „równolegle.moduł futures ”i wyświetl niektóre obliczenia matematyczne na naszej konsoli Sypder Tool Python Tool.