Python ottiene il thread ID

Python ottiene il thread ID
Viene dato un numero intero positivo quando viene creato un thread il nome "ID thread". I metodi "get_indent ()" e "get_native_id ()" possono essere utilizzati per acquisire l'ID thread. Il metodo "get_native_id ()" restituisce un ID dato dal kernel ed è anche un valore intero. Considerando che i metodi "get_indent ()" restituiscono un ID distinto che è un numero intero. Dobbiamo importare il modulo di threading in Python per avviare un thread prima di poter trovare gli ID del thread.

Esempio 1: utilizzando il threading.metodo get_ident () nei thread di Python.

Il "threading.get_ident () "il metodo verrà utilizzato in questo esempio per ottenere l'ID thread in uno script Python. Dobbiamo prima creare un thread nella sceneggiatura di Python per questo. I thread di Python sono un tipo di oggetto di processo che può avere la pianificazione della propria esecuzione. Un thread è un processo computazionale che un computer eseguirà. Un set di un programma di tali istruzioni che può essere eseguito separatamente da altre istruzioni è ciò che è. Quando viene avviato un thread, viene generato un lungo numero positivo chiamato ID thread. L'identificatore del thread è costante e unico durante il ciclo di vita completo di un thread. Ogni volta che il thread è terminato, può essere nuovamente utilizzato. Inoltre, ogni thread è riconosciuto. Ogni thread riceverà un'identificazione intera da Python. La funzione "get_ident ()" può essere utilizzata per ottenere queste informazioni. Il metodo "get_native_id ()" può essere utilizzato per recuperare il numero intero distintivo che il sistema operativo fornisce a ogni thread.

Iniziamo ora a mettere in pratica il codice usando lo strumento "Spyder", che è molto più facile da usare e comprendere per Python rispetto ad altri strumenti come Visual Studio Code. Importiamo il modulo "threading" perché stiamo costruendo un thread nella prima riga di codice. La seconda riga di codice importa il modulo "tempo", che fornisce una gamma di formati di codifica per il tempo, inclusi articoli, numeri e stringhe. Oltre alla rappresentazione del tempo, fornisce anche funzionalità come l'attesa mentre lo script viene eseguito e valutando l'efficienza del tuo script.

Quindi, poiché questa è una funzione definita dall'utente, siamo liberi di dargli qualsiasi nome che ci piace. Pertanto, creiamo una funzione con il nome "func" e usiamo il "tempo.funzione sleep () "per impostare un intervallo di tempo di" 3 "secondi. Non appena usiamo la funzione "sleep ()" e impostiamo il tempo, il nostro sistema prende un momento per quel periodo prima di eseguire la dichiarazione in cui abbiamo applicato la funzione "sleep ()". Successivamente, utilizziamo la funzione "print ()", passando "threading.Ottieni Identi () "per recuperare l'ID thread e la stringa di input" I Love Coding "all'interno delle sue parentesi. Ora che abbiamo fornito il tempo di "3" secondi nel "tempo.Metodo sleep () ", il nostro sistema dormirà per" 3 "secondi prima di visualizzare questa affermazione e il suo ID.

Ora, creeremo un thread e chiameremo la funzione al suo interno usando "threading.thread () "All'interno di esso, abbiamo superato l'argomento" target = func ", che significa chiamare la funzione all'interno del thread. Abbiamo quindi archiviato questo thread nella variabile "T1", che abbiamo inizializzato e l'abbiamo avviato nella riga seguente chiamando "T1.inizio()".

Quando eseguiamo il codice, il nostro sistema si ferma per tre secondi prima di visualizzare l'istruzione di stampa, "I love codifica" e l'ID thread, "13116."Abbiamo usato" threading.get_ident () ”sopra per ottenere l'ID thread perché l'ID thread dovrebbe essere un numero numerico positivo. Quindi, puoi essere sicuro che l'ID sia un numero intero positivo guardando l'ID del thread.

Ora, nella prossima sezione, stiamo usando lo stesso codice e "threading.Ottieni identificato () ",. Ma aggiungeremo un secondo thread perché, nella sezione precedente del codice, c'era solo un thread ora, ce ne sono due e dobbiamo trovare i loro ID. Per fare questo, proprio come nella sezione sopra, per prima cosa importa le due librerie "threading" e "time". Dopo aver definito una funzione, usiamo "tempo.sleep () "ma questa volta abbiamo impostato il tempo su" 1 "secondo. Successivamente, chiamiamo "print ()" e passiamo "threading.Ottieni Identi () "per ottenere gli ID del thread e l'istruzione input" I Love Coding."In questo caso, abbiamo anche utilizzato la sorgente di valore intero"%d ".

Ora creeremo due thread e chiameremo le funzioni in ogni thread. Il thread 1 verrà archiviato nella variabile "T1" e il thread 2 verrà memorizzato nella variabile "T2". Chiameremo quindi la funzione "func" nel thread 1 usando "threading.thread ", passando" target = func "e ripeti il ​​processo per thread 2. Infine, useremo la funzione "start ()" per avviare entrambi i thread.

Il sistema interrompe il funzionamento per "1" secondo a causa di "Sleep ()" quando premi il pulsante Esegui per visualizzare i suoi risultati sullo schermo. Quindi visualizza gli ID di entrambi i thread e l'istruzione: l'ID del primo thread è "11436" e l'ID del secondo thread è "11472".

Esempio 2: usando il threading.metodo get_native_id () nei thread di Python.

In questo esempio, l'ID del thread verrà ottenuto usando il threading.tecnica get_native_id (). Viene utilizzato per recuperare l'ID thread nativi che il kernel ha assegnato al thread corrente. Il thread attivo a livello di sistema è identificato da questo valore. Il "threading.get_native_id () "Metodo restituito valori numerici con un numero diverso da zero per l'ID.

Ora, iniziamo a implementare il codice. Innanzitutto, importiamo le due librerie "threading" e "Time."Quindi, definiamo una funzione con il nome" Func."Successivamente, chiamiamo il" tempo.Metodo sleep () "e impostare il timer per" 2 "secondi. Quindi, nella riga seguente, chiamiamo la funzione "Print ()" e passiamo l'affermazione "Python è il linguaggio di programmazione in più rapida crescita". Nella riga seguente, useremo "threading.thread () "per creare un thread e, al suo interno, passeremo" func "come argomento per chiamare la funzione" func "all'interno del thread. Questo thread è mantenuto nella variabile "T1", e quindi l'esecuzione del thread viene avviata chiamando "T1.inizio()".

L '"ID nativo" del thread, che è "8580", è stampato nell'output insieme all'istruzione di input. Ma prima che fosse visualizzato, l'esecuzione dell'affermazione è stata interrotta per due secondi perché avevamo usato il "tempo.funzione sleep () ”.

Ora creeremo le due funzioni nella prossima sezione "frase1" e "frase2". Il tempo.Il metodo sleep () "è chiamato all'interno della funzione" frase1 "e il parametro del tempo viene inviato come" 1 "secondi. Quindi, chiamiamo la funzione "print ()" nella riga seguente e al suo interno chiamiamo "threading.get_native_id "e l'istruzione di input. Per la seconda funzione, "frase2", ripetiamo il processo ma saltiamo l'uso del "tempo.funzione sleep () "per ottenere l'ID thread che il kernel ha assegnato e inviato l'istruzione di input.

Per il primo thread, abbiamo usato "threading.thread "e chiamato la funzione passando" frase1 "all'interno della sua parentesi come argomento. Abbiamo quindi archiviato questo thread nella variabile "T1". Ora creeremo due thread nel passaggio per il secondo thread, abbiamo ripetuto il processo ma questa volta abbiamo chiamato la seconda funzione, "frase2" e memorizzato questo thread in "T2". Le esecuzioni del thread sono state quindi iniziate usando "start ()" insieme a "T1" e "T2".

Puoi vedere che stampa immediatamente l'ID nativo del secondo thread, che è "10636", insieme alla sua istruzione stampata. Quindi, ha visualizzato l'ID del thread 1, che è "7400", perché quando si chiama la funzione uno, impostiamo l'intervallo di tempo per i secondi "1", che fa fermare la sua esecuzione per un secondo, quindi si sposta rapidamente su la prossima esecuzione.

Conclusione

Questo articolo ha esaminato diversi approcci per ottenere un ID thread in Python. Il "threading.metodo get_ident () "e" threading.get_native id () "Il metodo è stato entrambi utilizzato negli esempi. Entrambi questi metodi restituiscono l'identificazione univoca dei thread, che deve essere valori diversi da zero e di numeri reali. Nell'esempio, abbiamo anche utilizzato il "tempo.Metodo sleep () "per ritardare l'esecuzione dei thread.