Mutex attribútum objektum használata
A legérdekesebb a mutexhez társított attribútum telepítése: privát vagy megosztott. A lezárt mutexek azonos folyamatokban vannak elrendezve. Ön kijelölheti a mutex globális elemeit, vagy megszervezheti egy leíró leírását a szálak között. A megosztott mutexeket olyan szálak használják, amelyek hozzáférnek ahhoz a memóriához, amelyben a mutexet leképezik. Egy ilyen mutex képes megosztani a különböző folyamatok áramlását. A zárt és megosztott mutexek működési elve az 1. ábrán látható. 5.5. Ha el kell különíteni a mutexet a különböző folyamatok meneteitől, azt el kell helyezni a memóriába, ami közös a folyamatokhoz. A POSIX könyvtár számos funkciót határoz meg a memória leképezésére használt memóriák közötti memóriaelosztás és a megosztott memória objektumok használatával. A folyamatokban a mutexek felhasználhatók olyan kritikus partíciók védelmére, amelyek hozzáférnek a fájlokhoz, csatornákhoz, megosztott memóriához és külső eszközökhöz.
Mutex szemaforák használata a kritikus szakaszok kezelésére
A mutexeket a folyamatok és szálak kritikus szakaszainak kezelésére használják a "verseny" feltételek előfordulásának megakadályozására. A mutexek megakadályozzák a "versenyzés" feltételeit, biztosítva ezzel a kritikus részhez való konzisztens hozzáférést. Vegye figyelembe a kódot az 5.1. Két szálat mutat be. A kritikus partíciók védelme érdekében mutexeket használnak.
// Listing 5.1. A mutexek védelme
// a szálak kritikus része
pthread_t ThreadA, ThreadB; pthread_mutex_t Mutex, -pthread_mutexattr_t MutexAttr;
void * feladat1 (void * X)
pthread_mutex_lock (Mutex); // A kód kritikus része.
void * feladat2 (void * X)
// A kód kritikus része.
pthread_mutex_unlos (Mu t ex); visszatérés (0);