Προς το περιεχόμενο

pthread_detach σε νήματα


Nosferatou90

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,θα ήθελα να ρωτήσω εάν κάποιος ξέρει ακριβώς πως δουλεύει η pthread_detach σε ενα μοντέλο client-server...Έχω ένα μοντέλο client-server που επικοινωνεί αμφίδρομα..θέλω κάθε καινούργιος client που συνδέεται να εξυπηρετείται απο ένα νήμα..άρα χρησιμοποιώ μια

pthread_create κάπως έτσι:

 

for(i=0;i<THREADS;i++)

{

printf("Creating thread %d\n",i);

sc = pthread_create(&tid[t],NULL,s_func,(void *)&fs);

 

} //s_func έιναι η συνάρτηση που περίεχει τον κώδικα όπου επικοινωνώ με τον client και το fs

//είναι η μεταβλητή που έχω τον αριθμό του socket και θέλω να το περάσω μεσα στη συνάρτηση

 

Έστω οτι συνδέεται ένα πελάτης(client),δημιουργείται έτσι ένα νήμα και θέλω μόλις κάνω κάποια πράγματα μέσα στη s_func να κάνω detach..Πού το κάνω;;;;Μέσα στη συναρτηση s_func;;;Kάτω απο την create;;Έξω απο την create;;;Πού;

 

 

Ελπίζω κάποιος να μπορέσει να με βοηθήσει γιατι έχω μπλεξει...Ευχαριστώ

Δημοσ.

detach θα κανεις στην αρχη της συναρτησης s_func. Γενικά η detach

χρησιμοποιείται για να αποσπαστεί(αποδεσμεύσει τους πορους που κατέχει) ενα νημα-παιδι

απο το νήμα-πατερα.Ωστόσο δεν μου φαίνεται αναγκαίο σε ενα μοντελο client-server να το

χρησιμοπιήσεις.Νομίζω αυτό που χρειάζεσαι είναι η ptread_create ,μια pthread_join

για τον συντονισμο των νηματων, pthread_exit και τελος lock kai unlock των νηματων για

προστασια ταυτόχρονης εκτελεσης απο clients.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...