View Full Version : [C - libreria pthread] Domanda su come ricavare l'identificatore di un thread
agosteeno
11-05-2010, 17:15
Salve a tutti. Ho un piccolo dubbio e vorrei avere il vostro parere. Sto' risolvendo il classico problema dei filosofi a cena, ma il problema e' molto piu' basilare: in sostanza devo creare n thread e ognuno di questi fara' alcune operazioni. Per queste operazioni io devo stampare su stdout alcune righe che devono avere pero' l'indice del thread che lo sta' stampando. Volevo sapere se c'e' qualche metodo per ricavare questo indice, oppure se la soluzione e' passarlo come argomento della funzione nella pthread_create. Vi ringrazio in anticipo per le eventuali risposte.
agosteeno
11-05-2010, 17:24
Mi rendo conto di aver scritto in maniera un po' confusa... Io faccio una cosa del genere:
for(i = 0; i < n; i++)
{
pthread_create(&filosofi[i], NULL, &filosofo_t, (void *)i);
}
dove filosofi[] e' un array di tipo pthread_t grande n e filosofo_t e' la funzione che deve stampare. Se passo l'identificatore in questo modo (passando quindi i) la cosa funziona, ma vorrei sapere se c'e' un altro modo per farlo.
agosteeno
11-05-2010, 19:32
Ciao, ti ringrazio per la risposta, ma questa funzione nn fa' al caso mio. Infatti io devo avere un numero compreso tra 0 e n-1 (che e' il numero dei filosofi che partecipano alla cena), mentre questa mi restituisce il thread ID. Quello che voglio fare funziona benissimo gia' col metodo che sto' usando (e cioe' passare il numero che mi interessa come parametro alla funzione che realizza il thread vero e proprio) solo che mi sembra strano che nn ci sia un metodo che mi restituisca un "contatore" dei thread aperti...
agosteeno
12-05-2010, 11:39
Si infatti. Solo volevo sapere se c'era una qualche funzione che facesse questa cosa...
No, perché non è detto che serva sempre il progressivo, spesso basta anche il solo thread id.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.