Nosferatou90 Δημοσ. 30 Νοεμβρίου 2010 Δημοσ. 30 Νοεμβρίου 2010 Καλησπέρα,θα ήθελα να ρωτήσω εάν κάποιος ξέρει ακριβώς πως δουλεύει η 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;;;Πού; Ελπίζω κάποιος να μπορέσει να με βοηθήσει γιατι έχω μπλεξει...Ευχαριστώ
lolek Δημοσ. 1 Δεκεμβρίου 2010 Δημοσ. 1 Δεκεμβρίου 2010 detach θα κανεις στην αρχη της συναρτησης s_func. Γενικά η detach χρησιμοποιείται για να αποσπαστεί(αποδεσμεύσει τους πορους που κατέχει) ενα νημα-παιδι απο το νήμα-πατερα.Ωστόσο δεν μου φαίνεται αναγκαίο σε ενα μοντελο client-server να το χρησιμοπιήσεις.Νομίζω αυτό που χρειάζεσαι είναι η ptread_create ,μια pthread_join για τον συντονισμο των νηματων, pthread_exit και τελος lock kai unlock των νηματων για προστασια ταυτόχρονης εκτελεσης απο clients.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.