|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2009
Messaggi: 119
|
[C - libreria pthread] Domanda su come ricavare l'identificatore di un thread
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.
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Aug 2009
Messaggi: 119
|
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. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
prova con pthread_self
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2009
Messaggi: 119
|
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...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La soluzione è passarlo.
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2009
Messaggi: 119
|
Si infatti. Solo volevo sapere se c'era una qualche funzione che facesse questa cosa...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No, perché non è detto che serva sempre il progressivo, spesso basta anche il solo thread id.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:12.



















