Wątek w programie to zbiór instrukcji, które można przeprowadzić osobno od reszty programu. W rezultacie każdy z licznych małych zadań, które rozległy program można podzielić na wiele wątków, o ile ich wykonanie jest niezależne od innych zadań. Jeśli program działa tylko w jednym wątku, używa tylko jednego procesora lub tego jednego kawałka kodu. Jeśli jednak program można podzielić na kilka wątków i poproś każdy z tych wątków używa osobnego procesora, program będzie działał znacznie szybciej i będzie bardziej skuteczny. Wątek nigdy nie zapewnia wyniku bezpośrednio w Pythonie. Procedura wątku „start ()”, która generuje wątek wykonania, uruchamia uruchomione działania wątku, które uruchamiają nasz skrypt. Podejście „run ()” może zastosować metodę docelową, jeśli jest dostarczona. Celem jest po prostu wywołanie funkcji w wątku na raz.
Przykład 1: Funkcja Pythona Zwraca wartość z operacji gwintowanej
W tym przypadku użyjemy skryptu Pythona, aby zwrócić wartość funkcji z wątku. Wątek to unikalny przepływ przetwarzania. Sugeruje to, że Twój kod zajmie się dwoma jednoczesnymi wydarzeniami. Jednak większość rozwiązań Pythona tworzy tylko pomysł, że wiele wątków jest jednocześnie aktywnych. Typ powrotu funkcji jest zwykle używany do opisania wartości, jaką zapewnia użytkownikowi. Cała procedura Python wydaje się obejmować obsługę zdarzeń, bezpośrednio lub nieumyślnie. Wątek nie reaguje natychmiast na wartości. Proces „run ()” jest nazywany metodą wątku start (), tworząc osobny wątek przetwarzania dla naszego kodu. Jeśli jest dostarczany, funkcja docelowa może być wywoływana za pomocą metody „run ()”. Aby pobrać wartości z wątku, najpierw należy utworzyć wątek w skrypcie. Możemy zwrócić wartość funkcji z jednego wątku lub kilku wątków.
Zacznijmy teraz wdrażać kod. Najpierw importujemy wątek z sekcji wątku. Moduł wątków musi być zaimportowany, aby utworzyć wątki w Python. Utworzenie encji pakietu „Gwinting” uważa każdy wątek za obiekt. Podczas gdy pakiet „Wątek” uwzględnia funkcję podobną do wątku. Następnie definiujemy funkcję o nazwie „FUNC” w następnym kroku. Ponieważ ta funkcja może określić użytkownik, podaliśmy mu nazwę naszego wyboru. „ArgU1” i „Returning_val” zostały dostarczone jako parametry do funkcji „FUNC” w jej nawiasie.
Następnie, w poniższym etapie, używamy „Returning_val” i przekazujemy wartość „0”, ustawiając frazę „Zwraca wartość” i przekazując argument „argu1” z symbolem Dodaj symbol. Następnie utworzyliśmy zmienną „Returning_1_value” i ustawiliśmy ją na „Brak*1”. Podobnie utworzyliśmy „powrót_2_value” i ustawiliśmy go na „Brak*1” dla drugiej wartości zwracającej. Metoda „FUNC” pokazuje wartość argumentu 1 i wprowadza instrukcję zwrotu do wartości zwracanej 0.
Aby utworzyć wątek i wywołać w nim funkcję, musimy najpierw wywołać „wątek”, a następnie „Target = Func” w każdym z jej nawiasów. Target jest zasadniczo funkcją, więc celujemy do „FUNC” i wysyłamy listę argumentów z wątku, który zawiera „wątek 1” i „zwracającą 1 wartość”. W takim przypadku zwracanie 1 wartość służy do pobierania wartości z funkcji, w której ten wątek jest przechowywany w zmiennej „Wątek 1”.Następnie przeprowadzamy tę samą procedurę dla drugiego wątku. Nazywamy wątki i w nim przekazujemy funkcję „FUNC”, której lista parametrów jest „Wątek 2”, a także „Returning_2_Value”, której używamy do uzyskania wartości funkcji. Ten wątek przechowuje go w zmiennej „wątek2”. Wątki zaczynają teraz używać funkcji „start ()” z „Thread1” i „Thread2”. W poniższym etapie wykorzystujemy metody „łączenia ()”, aby czekać, aż wątki zakończą wykonywanie. Funkcja „print ()” jest następnie używana w następującym wierszu z argumentami „returnin_1_value” i „returning_2_value”.
W wyjściu wyświetlił wartość zwracania. Najpierw pokazał instrukcję drukowania, w którym przekazaliśmy wartość zwracającą. Wartość dla 1 to „Wątek 1”, a 2 to „Wątek 2”. Następnie wyświetlił instrukcję wątków, która jest „Zwraca wartość z wątku 1”, a druga to „Zwraca wartość z wątku 2”.
Przykład 2: Wiele wartości otrzymuje powrót z wątku
W tym przypadku zwrócimy wiele wartości z wątków do wyświetlacza wyjściowego. Kiedy program wytwarza wiele wątków i cykli poprzez ich wykonanie, jest to wielowątkowe, znane również jako wątki, ponieważ zapobiega blokowaniu jednej dłuższej operacji. Jest to skuteczne w przypadku działań, które można podzielić na mniejsze podrady.
Zacznijmy wdrażać kod poprzez importowanie trzech bibliotek. Pakiet czasowy Python zapewnia różnorodne reprezentacje kodowania czasu, takie jak obiekty, liczby i znaki. W pierwszym imporcie importujemy „Sleep” z modułu czasu. Pozwala także ocenić skuteczność skryptu i czekać podczas jego działania, oprócz innych funkcji niż reprezentacja czasu. Procedura modułu czasu Sleep () pozwala zawiesić wykonanie wątku wywoławczego na wiele sekund, które lubisz. Następnie importujemy „Wątek” z modułu gwintowania. Klasa „CustomThread” jest zdefiniowana w następnym kroku i akceptuje argument „Wątek” jako jedyny parametr.
Następnie definiujemy metodę „_init_” i dostarczamy do niej słowo kluczowe „self”. Każdy obiekt lub klasa w Pythonie ma przypisane do niego słowo kluczowe „ja”. Słowo kluczowe „ja” pozwala szybko uzyskać dostęp do wszystkich przykładów zadeklarowanych w klasie, w tym jej metod i atrybutów. Jedną z ograniczonych metod Pythona jest __init__. W poniższym wierszu wywołujemy tę metodę za pomocą wątku za pomocą „Wątek. w sobie)". Następnie w poniższym wierszu definiujemy funkcję „run ()” i przekazujemy argument „jaźń.„Następnie używamy metody„ sleep () ”i ustawiamy czas na sekundy„ 1 ”, co oznacza, że zatrzymuje wykonanie na sekundę.
Następnie ustawiamy wartości w każdej zmiennej instancji za pomocą „Self.val1 ”,„ jaźń.val2 ”i„ jaźń.Val3 ”ustawiając swoje wartości odpowiednio na„ Hello ”,„ 18 ”i„ True ”. Innymi słowy, nazwaliśmy wartości, przekazując tutaj słowo kluczowe „ja”. Następnie zadzwoniliśmy do „Customthread” w wątku i zapisaliśmy go w zmiennej „wątku”. Następnie używamy metody start () z wątkami, aby uruchomić wątek i technikę „łączy ()” z „wątkiem”, aby poczekać na uruchomienie programu głównego. Następnie nazywamy funkcję „print ()” i wewnątrz niej nazywamy wartości zwracania wątku przekazując argumenty „wątek.val1 ”,„ wątek.val2 ”i„ wątek.Val3 ”.
Jak pokazano na poniższym zrzucie ekranu, zwraca wiele wartości z wątków w wyjściu. Pierwsza wartość to „Hello”, druga to „18”, a trzeci to „Prawda”, które są wartościami wątków, które przechowyliśmy w funkcji „run ()”.
Wniosek
Omówiliśmy, jak po prostu zwrócić wartość wątku lub wartości funkcji z wątku w tym artykule. W tym artykule zastosowano dwa instancje. Wartość funkcji operacji wątku została zwrócona w pierwszym, a liczne wartości wątków zostały zwrócone na wyświetlaczu wyjściowym drugiego. W każdym z naszych przypadków zdefiniowaliśmy funkcje zdefiniowane przez użytkownika, które są wywoływane w wątkach. Klasa „Customthread” została również zdefiniowana w drugim przykładzie. Będziesz skorzystać z przeczytania tego artykułu podczas badania tego tematu.