Abbiamo iniziato a implementare questo articolo per creare un file C di recente generazione. Questo file può essere creato usando l'istruzione "touch" di Ubuntu nella sua shell. È abbastanza facile farlo mentre lo abbiamo fatto nel comando mostrato nello screenshot allegato. Ci sono diversi redattori integrati disponibili in Ubuntu per aprire e modificare il codice C. Abbiamo utilizzato l'editore "nano" incorporato in un terminale di Ubuntu 20.04 Utilizzo della parola chiave "nano" nell'istruzione.
Esempio 01:
Quindi, stiamo iniziando il nostro primo esempio di utilizzo della funzione pThread_self () nel codice C per ottenere "ID" di un thread in Ubuntu 20.04. Abbiamo inizializzato il codice con intestazioni semplici. Queste intestazioni sono le necessità del codice C. Senza queste intestazioni, il nostro codice non è utile e non saremo in grado di ottenere il risultato richiesto. Abbiamo incluso l'intestazione "STDIO" per prendere input-output standard nel nostro codice. Viene anche utilizzato il file di intestazione della libreria standard. Nel frattempo, il file di intestazione principale è "PThread", che è stato incluso per utilizzare la libreria thread POSIX standard e le sue funzioni nel codice C.
Dopo che le librerie sono state incluse, abbiamo utilizzato la funzione thread definita dall'utente denominata "task" che prende il riferimento del puntatore al "id" di un thread creato nella funzione principale. All'interno di questa funzione dell'attività, utilizziamo la clausola printf per produrre un'istruzione che mostra che stiamo eseguendo il thread con un particolare "ID."Il thread" id "che è stato ottenuto dall'uso della funzione" pthread_self "in questa istruzione verrà visualizzato insieme al testo nella shell tramite la clausola" printf ".
La funzione "pthread_exit" viene utilizzata qui per uscire dal thread creato e restituire null alla funzione principale, come mostrato dalla clausola "restituzione" della funzione "attività". Ecco che arriva il codice di esecuzione principale di un file. L'esecuzione del codice C sarà sempre avviata dalla sua funzione principale (). La funzione principale () sta usando la variabile "pThread_t" del posix per ottenere l'ID di un thread creato dalla funzione "pthread_create" all'interno della mutabile "th". La semplice clausola "printf" è lanciata qui per produrre sul terminale che la funzione principale è stata eseguita o funzionante al momento. Dopo questo, la funzione "pthread_create" è qui per creare un nuovo thread. La variabile "Th" è stata citata qui per identificare questo thread dal suo ID e ottenere parametri null. La funzione "Task" è stata chiamata qui per utilizzarla come esecutivo di thread o mostrare informazioni sull'ID thread. La funzione dell'attività non sta assumendo argomenti secondo il null. Dopo che la funzione "Task" viene eseguita e restituita "NULL", la funzione pThread_join () viene utilizzata qui per fermare o appendere il thread chiamante in attesa che il thread diretto completi o termina. Il codice C per pThread_self () è completato e compilato nella shell.
Usiamo il compilatore "GCC" che è già stato installato nel nostro Ubuntu 20.04 Sistema. Il tuo codice non emetterà la cosa richiesta sulla shell senza di essa. Quindi, devi ottenere il compilatore "GCC". La compilation per pThread_self () è eccezionale e siamo pronti a eseguire il codice. Il codice di esecuzione viene utilizzato come una sola parola chiave "./UN.fuori "come sotto. Puoi vedere che la funzione principale è stata eseguita per prima e creata un thread. Attraverso questo thread, viene chiamata la funzione "attività" e visualizza l'ID thread nella shell. La funzione dell'attività è stata completata e il thread principale () è stato terminato. Ecco come funziona la funzione "pthread_self".
Esempio 02:
Diamo un'altra illustrazione per dare un'occhiata alla funzione "pThread_self ()" nel codice C. Per questo, aggiorneremo lo stesso "sé.File C "appena utilizzato nell'esempio sopra. Apriremo il file all'interno dell'editor di Ubuntu chiamato "Nano" come mostrato sotto.
Il codice viene ricominciato con alcune intestazioni. L'intestazione di uscita di input standard viene utilizzata per ottenere l'ingresso e visualizzarlo. Le librerie "unistd" e "stdlib" vengono utilizzate per utilizzare alcune funzioni standard all'interno del codice. La libreria "PThread" è un must da utilizzare qui per l'utilizzo delle funzioni "Posix" nel codice. Abbiamo definito il numero di thread utilizzando i "thread" di posix nel codice dopo le librerie usando l'istruzione "if" e l'uso della parola chiave "#define". Viene utilizzato per limitare il numero di thread utilizzati nel codice non più di 3. Dopo la dichiarazione di thread, abbiamo usato la funzione definita dall'utente "visualizzazione" del tipo di punta. Questa funzione prende l'argomento "p" del tipo di punta. La variabile di tipo lungo è dichiarata.
Nella riga successiva, il valore della variabile puntatore di riferimento viene convertito in tipo "lungo" ed è stato assegnato alla variabile "ID."La clausola printf utilizza il numero thread e l'ID da visualizzare sulla shell usando" LD "e" LU "nel testo. Dopo questo, il thread è stato uscito. Ora, la funzione principale () è dichiarata con due argomenti. Il "pthread_t" viene utilizzato per inizializzare l'elenco "th" con una dimensione di 3 thread usando "thread" già dichiarati. Quindi viene dichiarata una "res" variabile intera e il ciclo "per" è stato avviato. Funzionerà fino a 3 volte e verranno creati tre thread utilizzando la funzione "pthread_create". Questa funzione utilizza gli ID di tre thread consecutivamente, uno dopo l'altro, e la funzione di visualizzazione utilizza quegli ID come argomento per punta."Se si è verificato un errore a causa del metodo" Display ", il thread non è stato completato correttamente. Restituirà l'errore alla variabile "res" delle funzioni principali. Se si verifica un errore, l'istruzione "Printf" visualizzerà tale errore utilizzando la variabile "Res" all'interno dell'istruzione "if". Successivamente, l'istruzione e il programma IF verranno terminati.
Ora, è giunto il momento di salvare e compilare questo codice C nel sistema. Per il salvataggio, usa "Ctrl+S" mentre rimani nell'editore. Usa "Ctrl+X" per uscire dall'editor di codice C. Dopo il comando di compilazione "GCC", l'uso nella shell è riuscito. Abbiamo eseguito questo codice con il "./UN.istruzioni out "e l'output mostra gli ID di tre diversi thread consecutivamente.
Conclusione:
Questo articolo è stato trattato gli esempi semplici e più semplici dell'utilizzo della funzione pThread_join () della libreria Posix in C. In primo luogo, abbiamo spiegato l'utilizzo della funzione "pThread_join ()" di Posix nella lingua C. Dopodiché, abbiamo discusso alcuni degli esempi per illustrare il suo lavoro nel programma C. Abbiamo fiducia che tutti gli esempi siano notevoli e facilmente implementati sull'editor Linux ed eseguono la shell.