|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 142
|
[C] Organizzare un programma Multithread
Ciao a tutti!!!
Devo realizzare un programma Multithread ed il problema e' che io non ho mai programmato con questi. Siccome non so a priori il numero di thread che potranno servirmi ( devo fare una chat ) non riesco a capire come poterli memozizzare. Mi spiego meglio, io ho la necessita di terminare un thread X quando il determinato utente si disconnette, quindi io avevo pensato ad una lista che contiene i thread_id di tutti gli utenti e cancellare l'elemento relativo all'utente che si disconnette, pensate che sia una buona idea? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Modena
Messaggi: 592
|
Una semplice pthread_exit alla fine di ogni thread può bastare, unita ad una pthread_join all'interno del main!
Qui: http://yolinux.com/TUTORIALS/LinuxTu...ixThreads.html trovi un buon tutorial sui pthread e in fondo alla pagina ci sono una serie di link molto utili! Ciauz |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 142
|
All'interno del ciclo while(true) nel caso in cui l'utente voglia uscire ci metto una pthread_exit ?
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 142
|
Ah, e se invece all'interno del ciclo while(true) che gestisce il thread utente mettissi un break quando questo vuole uscire, e' peggio rispetto ad una exit ?
|
|
|
|
|
|
#5 |
|
Utente sospeso
Iscritto dal: Oct 2002
Messaggi: 2156
|
il thread ha una funzione principale che è in fin dei conti è il thread stesso..... quando questa funzione ritorna il thread muore quindi sono quasi certo che non sia necessario chiamare una funzione apposta che lo uccide....piuttosto devi liberare gli handle degli oggetti kernel che ti serviranno per la sincronizzazione.
ciao!
__________________
sign editata dallo staff |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 142
|
ah, quindi libero la memoria che mi serve quando questo deve terminare e faccio una return ?
Altra domanda, per quanto riguarda i mutex non riesco ad organizzarmi, cioe', e' meglio se metto uno static pthread_mutex_t all'interni del thread prima del ciclo while, oppure metto un muttex globale all'esterno di tutto e lo inizializzo con PTHREAD_MUTEX_INITIALIZER? cioe', la differenza dove sta? |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2002
Città: Modena
Messaggi: 592
|
Quote:
Ecco il link: http://lia.deis.unibo.it/Courses/Sis...Materiale.html Ciauz |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:56.



















