Τι είναι το Pthread_cond_signal;
Τι είναι το Pthread_cond_signal;

Βίντεο: Τι είναι το Pthread_cond_signal;

Βίντεο: Τι είναι το Pthread_cond_signal;
Βίντεο: Pthread Condition Variables 2024, Νοέμβριος
Anonim

ο pthread_cond_signal () Η συνάρτηση θα ξεμπλοκάρει τουλάχιστον ένα από τα νήματα που είναι μπλοκαρισμένα στην καθορισμένη συνθήκη μεταβλητής συνθήκης (εάν κάποια νήματα είναι μπλοκαρισμένα on cond). Εάν περισσότερα από ένα νήμα είναι αποκλεισμένα σε μια μεταβλητή συνθήκης, η πολιτική προγραμματισμού καθορίζει τη σειρά με την οποία ξεμπλοκάρονται τα νήματα.

Απλώς, τι είναι το Pthread_cond_t;

ΠΕΡΙΓΡΑΦΗ. ο pthread_cond_wait Οι συναρτήσεις () και pthread_cond_timedwait() χρησιμοποιούνται για αποκλεισμό μιας μεταβλητής συνθήκης. Καλούνται με mutex κλειδωμένο από το νήμα κλήσης ή θα προκύψει απροσδιόριστη συμπεριφορά.

Επιπλέον, γιατί το Pthread_cond_wait χρειάζεται mutex; ο mutex χρησιμοποιείται για την προστασία της ίδιας της μεταβλητής συνθήκης. Γι' αυτό εσύ χρειάζομαι κλειδώθηκε μπροστά σου κάνω αναμένω. Στη συνέχεια, όταν η μεταβλητή συνθήκης σηματοδοτηθεί ή μεταδοθεί σε, ένα ή περισσότερα από τα νήματα στη λίστα αναμονής θα ξυπνήσουν και το mutex θα κλειδωθεί ξανά ως δια μαγείας για αυτό το νήμα.

Επιπλέον, πώς χρησιμοποιείτε τις μεταβλητές συνθήκης;

Στα τυπικά χρήση , ένα κατάσταση Η έκφραση αξιολογείται υπό την προστασία μιας κλειδαριάς mutex. Οταν ο κατάσταση η έκφραση είναι ψευδής, το νήμα μπλοκ στο μεταβλητή συνθήκης . ο μεταβλητή συνθήκης στη συνέχεια σηματοδοτείται από άλλο νήμα όταν αλλάζει το κατάσταση αξία.

Τι είναι το Pthread_mutex_t;

pthread_mutex_t χρησιμοποιείται για να δηλώσει ένα αντικείμενο τύπου mutex. έτσι: pthread_mutex_t mymutexvariable; Στη συνέχεια θα χρησιμοποιούσατε τη μεταβλητή mutex για να κλειδώσετε και να ξεκλειδώσετε ένα mutex.

Συνιστάται: