Python thread join

Python thread join
Un thread dovrebbe utilizzare la funzione "join ()" se vuole attendere un altro metodo, che richiede che il secondo thread attenda fino al completamento del primo. Utilizzando un oggetto thread, invochiamo il metodo di join utilizzando gli oggetti thread che importano il modulo thread Python per la creazione di thread.

Come implementare il thread python uni in uno script

In questo esempio, useremo il thread di Python ".Metodo join () "per combinare due thread. Un thread è un flusso di elaborazione unico. Ciò implica che ci saranno due eventi simultanei nel tuo programma. Tuttavia, la maggior parte delle implementazioni di Python dà solo l'impressione che diversi thread siano in esecuzione contemporaneamente. Un vantaggio chiave dell'impiego di thread è che un'applicazione multithread opererà su un sistema di processore a programmazione singola, utilizzando automaticamente un sistema multiprocessore senza la necessità di ricompilazione. La programmazione con molti thread separati aiuta a implementare algoritmi paralleli.

Il metodo join () della classe thread consente di ritardare un thread fino a quando non è terminato un altro thread in esecuzione. Quando thread.viene chiamato join (), assicurerà che venga interrotto anche prima che il programma esegui l'istruzione successiva: se si tratta di un'istanza di thread il cui thread è attualmente in esecuzione.

Cominciamo a implementare lo script nello strumento "Spyder" implementando il codice. Un ottimo strumento per la compilazione del codice Python è Spyder. Spyder ha un'esecuzione dinamica del programma, che ti offre nuove capacità di risoluzione dei problemi. Può anche essere utilizzato per creare analisi utilizzando le informazioni e per raggiungere gli obiettivi di gestione dei dati. Per avviare il codice, la prima riga importa il modulo "threading". Un metodo con l'identificatore "func1" è creato nella riga successiva. Semplici metodi definiti dall'utente sono tecniche che puoi utilizzare per organizzare lo script all'interno del corpo di un programma. Qui, ne progettiamo uno.

Una volta definita, una funzione può essere utilizzata in modo simile a come vengono utilizzate le azioni costruite e i processi di analisi. Le variabili vengono inviate in base al riferimento alle funzioni piuttosto che al valore. Le variabili "dividendo" e "divisore" sono state fornite come parametri a "func1" nella parentesi. L'istruzione è stata quindi stampata utilizzando la funzione "Print ()" sulla riga successiva. La funzione print () mostra il messaggio sullo schermo o un altro dispositivo di output comune. L'oggetto verrà trasformato in una stringa prima di essere mostrato sul monitor e la frase può essere una stringa o forse un altro elemento. L'istruzione "let start" viene passata alla funzione "print ()" e viene applicata una condizione "if" per determinare se il dividendo diviso per il divisore è equivalente a "zero", nel qual caso stamping "vero", o se stampare "falso."La parola" fine "viene quindi passata quando invochiamo ancora una volta il metodo" print () ". Quindi, nella riga seguente, usiamo "threading.Discussione "per creare due thread. All'interno della sua parentesi, eseguiamo la funzione e passando anche i valori di dividendo e divisore, che sono "15" e "3", come suoi parametri.

Una procedura simile viene quindi ripetuta nella riga successiva, questa volta esegue la funzione con un thread e consegnandolo i valori "21" e "2" per il dividendo e il divisore come argomenti. Il primo thread viene mantenuto nella variabile "thread 1", mentre il secondo thread viene mantenuto nella variabile inizializzata "thread 2". La riga successiva utilizza il metodo "start ()" e "thread 1" per iniziare l'esecuzione del thread. Il sistema operativo lancerà il processo in un nuovo thread il più presto possibile dopo che il metodo "start ()" restituisce istantaneamente. Quindi, vengono chiamati "join ()" e "thread 1". Allo stesso modo, ripetiamo il processo chiamando le funzioni "start ()" e "join ()" usando "thread 2."

La tecnica "join ()" viene utilizzata da un thread per attendere un altro thread. Di conseguenza, il primo thread è stato finito. Iniziamo prima la stampa e, dopo quello, è apparso "vero" perché la condizione del primo thread era stata soddisfatta. La risposta sarà 0 se dividiamo 15 per 3. Pertanto, ha visualizzato "vero" prima di aggiungere l'istruzione stampata "fine", significando che il primo thread è arrivato. È stato quindi visto il secondo thread. Il secondo thread si è quindi concluso dopo aver mostrato "falso" perché i criteri non sono stati soddisfatti e le risposte ai numeri dati non erano zero.

Ecco un altro esempio di threading in cui i "thread.La funzione join () ”viene utilizzata così come il tempo.Metodo sleep (). Il primo passo prevede l'importazione delle due biblioteche Python. Perché questo codice utilizza il "tempo.Metodo sleep () ", la prima importazione è per il modulo" thread ", mentre la seconda importazione è per il modulo" time ". Il tempo di Python ".La tecnica Sleep () ”viene utilizzata per attendere l'esecuzione di un programma. Il metodo Python "Sleep ()" può essere utilizzato per fermare le prestazioni di un programma per un periodo specificato, determinato in secondi. Capire che il Python “Time.La tecnica sleep () ”termina semplicemente il thread corrente, non l'intero programma.

Sono definite due funzioni. La prima funzione in questo script, "Func1", viene utilizzata per archiviare due istruzioni di stampa utilizzando la funzione "Print ()". La prima istruzione che abbiamo stampato utilizzando l'istruzione di stampa è "Avvio del thread 1". Quindi, nella riga seguente, abbiamo usato la funzione "Sleep ()" con il modulo Time per impostare il tempo su "20" secondi. Quindi, abbiamo chiamato un'altra istruzione usando la funzione print (), “Il thread 1 è terminato."

Quindi, creiamo una seconda funzione, "func2" e passiamo due dichiarazioni ad essa. La prima affermazione che vogliamo stampare è "Avvio del thread 2",. Nella riga seguente, impostiamo gli intervalli di tempo in secondi per essere "4" usando il "tempo.Metodo sleep () ". Quindi, utilizziamo la funzione "print ()" per stampare l'istruzione "Il thread 2 è terminato."Dopo aver costruito la funzione, ora creiamo due thread e utilizziamo il modulo thread per chiamare la funzione, ma prima di farlo, visualizziamo l'istruzione" Avvia "prima. La prima funzione, "Func1", è ora chiamata usando un thread e memorizzata nella variabile appena formata "T1",. Dopo di che, "func2" viene chiamato usando un thread e inserito nella variabile "T2."

Quindi, nella riga seguente, abbiamo chiamato la funzione "start ()" con i thread "T1" e "T2" per iniziare la sua esecuzione. Prima di stampare la dichiarazione "estremità", abbiamo quindi usato il "tempo.Metodo sleep () "per impostare il timer per due secondi. Infine, abbiamo chiamato la funzione "join ()" con "T2" e abbiamo usato il "tempo.Metodo sleep () ".

Ora, l'output ha prima visualizzato l'istruzione di stampa iniziale, quindi, come abbiamo chiamato Func1 usando il thread, è andato a Func1 e ha stampato l'istruzione "Avvio del thread 1". Mentre abbiamo impostato il tempo per "20" prima di stampare la seconda affermazione, il sistema è andato a dormire per "20" secondi. Poi, è arrivato al secondo "Func2", ha stampato la sua dichiarazione, "Avvio del thread 2",. E abbiamo usato “Time.sleep () "prima di stampare la sua dichiarazione terminata, il sistema è andato a dormire per" 4 "secondi. Poiché l'intervallo di tempo tra le istruzioni "func2" è più piccolo delle dichiarazioni di finale "func1", ora stampa la dichiarazione finale "func2", che è "thread 2 è terminata" prima della dichiarazione di finitura "func1", che è "thread 1 è terminato ".

Conclusione

Questo articolo ha utilizzato due thread per discutere del thread di Python ".join () ”tecnica. Nell'esempio di cui sopra, abbiamo costruito una funzione, chiamata usando la funzione con il modulo "thread" e abbiamo usato i thread per invocare il metodo "join ()". Questa procedura "join ()" attende che il primo thread finisca prima di iniziare l'esecuzione del secondo thread. Nell'esempio sopra, abbiamo anche usato "tempo.sleep () "per ritardare l'esecuzione delle dichiarazioni.