Python dostaje identyfikator wątku

Python dostaje identyfikator wątku
Liczba całkowita, która jest pozytywna, gdy utworzony wątek otrzymuje nazwę „ID wątku”. Do uzyskania identyfikatora wątku można użyć metod „get_indent ()” i „get_native_id ()”. Metoda „get_native_id ()” zwraca identyfikator podawany przez jądro i jest również wartością liczb całkowitych. Podczas gdy metody „get_indent ()” zwracają wyraźny identyfikator, który jest numerem liczbowym. Musimy zaimportować moduł gwintowania do Pythona, aby uruchomić wątek, zanim znajdziemy identyfikatory wątku.

Przykład 1: Wykorzystanie wątków.Metoda get_ident () w wątkach Python.

„Gwintowanie.Metoda get_ident () ”zostanie użyta w tym przykładzie, aby uzyskać identyfikator wątku w skrypcie Python. Musimy najpierw zbudować do tego wątek w skrypcie Python. Wątki Pythona są rodzajem obiektu procesowego, który może zaplanować ich wykonanie. Wątek to proces obliczeniowy, który komputer będzie wykonywał. Zestaw takich instrukcji, które można wykonać osobno od innych instrukcji, jest tym, czym jest. Po uruchomieniu wątku generowana jest długa liczba dodatnich o nazwie identyfikator wątku. Identyfikator wątku jest stały i wyjątkowy podczas pełnego cyklu życia wątku. Ilekroć wątek jest zakończony, można go ponownie wykorzystać. Dodatkowo każdy wątek jest rozpoznawany. Każdy wątek otrzyma identyfikację całkowitą od Pythona. Do uzyskania tych informacji można wykorzystać funkcję „get_ident ()”. Metodę „get_native_id ()” można wykorzystać do pobierania charakterystycznej liczby całkowitej, którą system operacyjny zapewnia każdemu wątkowi.

Zacznijmy teraz wprowadzić kod w praktyce za pomocą narzędzia „Spyder”, które jest znacznie łatwiejsze w użyciu i zrozumienia dla Pythona niż inne narzędzia, takie jak kod Visual Studio. Importujemy moduł „wątku”, ponieważ konstruujemy wątek w pierwszym wierszu kodu. Druga wiersz kodu importuje moduł „czasu”, który zapewnia szereg formatów kodowania dla czasu, w tym elementy, liczby i struny. Oprócz reprezentacji, zapewnia on również możliwości takie jak oczekiwanie podczas wykonywania skryptu i oceny wydajności skryptu.

Następnie, ponieważ jest to funkcja zdefiniowana przez użytkownika, możemy dać mu dowolną nazwę. Dlatego tworzymy funkcję o nazwie „FUNC” i używamy „czasu.Sleep () ”funkcja ustawiania odstępu czasu„ 3 ”sekund. Gdy tylko użyjemy funkcji „sleep ()” i ustawiamy czas, nasz system zajmuje chwilę na ten okres przed wykonaniem instrukcji, w której zastosowaliśmy funkcję „sleep ()”. Następnie używamy funkcji „print ()”, przekazywanym „gwintowaniem.get Ident () ”, aby pobrać identyfikator wątku i ciąg wejściowy„ Uwielbiam kodowanie ”wewnątrz jego nawiasów. Teraz, gdy dostarczyliśmy czas „3” sekund w „czasie.Metoda sleep () ”, nasz system będzie spał przez„ 3 ”sekundy przed wyświetleniem tego instrukcji i jego identyfikatora.

Teraz utworzymy wątek i wywołać w nim funkcję, używając „Threading.wątek () ”Wewnątrz przekazaliśmy argument„ Target = Func ”, co oznacza wywołanie funkcji w wątku. Następnie zapisaliśmy ten wątek w zmiennej „T1”, którą zainicjowaliśmy, i rozpoczęliśmy go w następującym wierszu, nazywając „T1.początek()".

Kiedy wykonujemy kod, nasz system zatrzymuje się na trzy sekundy przed wyświetleniem instrukcji drukowania „Uwielbiam kodowanie” i identyfikator wątku „13116.”Użyliśmy„ Gwintowania.get_ident () ”powyżej, aby uzyskać identyfikator wątku, ponieważ identyfikator wątku powinien być dodatnią liczbą liczbową. Możesz więc być pewien, że identyfikator jest dodatnią liczbą całkowitą, patrząc na identyfikator wątku.

Teraz, w następnej sekcji, używamy tego samego kodu i „wątków.get Ident () ”. Ale dodamy drugi wątek, ponieważ w poprzedniej sekcji kodu było teraz tylko jeden wątek, jest dwa i musimy znaleźć ich identyfikatory. Aby to zrobić, podobnie jak w powyższej sekcji, najpierw importujemy dwie biblioteki „gwintowanie” i „czas”. Po zdefiniowaniu funkcji używamy „czasu.sleep () ”, ale tym razem ustawiamy czas na„ 1 ”. Następnie nazywamy „print ()” i przekazujemy „gwintowanie.get Ident () ”, aby uzyskać identyfikatory wątków, a także instrukcję Input„ Uwielbiam kodowanie.„W tym przypadku wykorzystaliśmy również źródło wartości całkowitej„%D ”.

Teraz utworzymy dwa wątki i wywołamy funkcje w każdym wątku. Wątek 1 będzie przechowywany w zmiennej „T1”, a wątek 2 będzie przechowywany w zmiennej „T2”. Następnie wywołamy funkcję „FUNC” w wątku 1 za pomocą „Wątka.Wątek ”, przekazanie„ Target = Func ”i powtórz proces dla wątku 2. Na koniec użyjemy funkcji „start ()”, aby uruchomić oba wątki.

System zatrzymuje działanie dla „1” sekundy ze względu na „sleep ()” po naciśnięciu przycisku Uruchom, aby wyświetlić jego wyniki na ekranie. Następnie wyświetla identyfikatory obu wątków i instrukcję: Identyfikator pierwszego wątku to „11436”, a identyfikator drugiego wątku to „11472”.

Przykład 2: Za pomocą wątku.Metoda get_native_id () w wątkach Python.

W tym przykładzie identyfikator wątku zostanie uzyskany za pomocą wątku.get_native_id () technika. Służy do odzyskania natywnych wątków identyfikator. Aktywny wątek w całym systemie jest identyfikowany przez tę wartość. „Gwintowanie.metoda get_native_id () ”zwróciła wartości liczbowe z liczbą niezerową dla identyfikatora.

Teraz zacznijmy wdrażać kod. Najpierw importujemy dwie biblioteki „gwintowanie” i „czas.”Następnie definiujemy funkcję o nazwie„ FUNC.„Następnie nazywamy„ czas.Metoda sleep () ”i ustaw licznik czasu na„ 2 ”sekundy. Następnie w poniższym wierszu nazywamy funkcję „print ()” i przekazujemy stwierdzenie „Python jest najszybciej rozwijającym się językiem programowania”. W poniższym wierszu użyjemy „Gwintowania.wątek () ”Aby utworzyć wątek, a wewnątrz go przekazamy„ FUNC ”jako argument, aby wywołać funkcję„ FUNC ”w wątku. Ten wątek jest przechowywany w zmiennej „T1”, a następnie wykonanie wątku rozpoczyna się od wywołania „T1.początek()".

„Native ID” wątku, który jest „8580”, jest drukowany na wyjściu wraz z instrukcją Input. Ale zanim zostało wyświetlone, wykonanie instrukcji zostało wstrzymane na dwie sekundy, ponieważ użyliśmy „czasu.Funkcja sleep () ”.

Teraz utworzymy dwie funkcje w następnej sekcji „Fraza 1” i „fraza2”. Czas.Metoda sleep () ”jest wywoływana wewnątrz funkcji„ fraza 1 ”, a parametr czasu jest wysyłany jako„ 1 ”sekundy. Następnie nazywamy funkcję „print ()” w następującym wierszu i wewnątrz niej nazywamy „Wątp.get_native_id ”i instrukcja Input. W przypadku drugiej funkcji „fraza2” powtarzamy proces, ale pomijamy użycie „czasu.sleep () ”, aby uzyskać identyfikator wątku, który przypisało jądro i wyślij instrukcję Input.

W pierwszym wątku użyliśmy „Gwintowania.wątek ”i nazwał funkcję, przekazując„ frazę 1 ”w jej nawiasie jako argument. Następnie przechowyliśmy ten wątek w zmiennej „T1”. Teraz utworzymy dwa wątki w kroku dla drugiego wątku, powtórzyliśmy proces, ale tym razem nazwaliśmy drugą funkcję „frazą2” i zapisaliśmy ten wątek w „T2”. Wykonania wątków rozpoczęto następnie używanie „start ()” razem z „T1” i „T2”.

Możesz zobaczyć, że natychmiast drukuje natywny identyfikator drugiego wątku, który jest „10636” wraz z drukowanym instrukcją. Następnie wyświetlił identyfikator wątku 1, który jest „7400”, ponieważ gdy wywoływana jest funkcja, ustawiamy przedział czasu na „1” sekundy, co powoduje, że jego wykonanie zatrzyma się na jedną sekundę, więc szybko przechodzi dalej następne wykonanie.

Wniosek

W tym artykule zbadano różne podejścia do uzyskania identyfikatora wątku w Pythonie. „Gwintowanie.Metoda get_ident () ”i„ gwintowanie.Metoda get_native id () ”została wykorzystana w przykładach. Obie te metody zwracają unikalną identyfikację wątków, które muszą być wartościami liczbowymi i rzeczywistymi. W przykładzie wykorzystaliśmy również „Czas.Sleep () ”Metoda opóźnienia wykonywania wątków.