Memahami Konsep Mutex melalui Analogi Dunia Sebenar
Untuk memahami fungsi mutex, mari kita bayangkan senario yang melibatkan berbilang individu dan telefon gerai. Setiap individu mewakili benang, dan pondok telefon melambangkan sumber yang hanya boleh diakses oleh seorang pada satu masa.
Peranan Mutex sebagai "Pemegang Pintu":
Mutex bertindak sebagai pemegang pintu pondok telefon, mengawal akses kepada sumber. Apabila seseorang memegang pemegangnya, mereka mengunci pintu dengan berkesan, menghalang orang lain daripada masuk. Begitu juga, benang yang memperoleh kunci pada mutex memperoleh akses eksklusif kepada sumber yang dilindungi oleh mutex.
Cara Benang Menentukan Status Kunci:
Benang bergantung pada mekanisme yang dipanggil "pagar ingatan" untuk menentukan sama ada mutex dikunci. Pagar memori memastikan bahawa status kunci disegerakkan merentas semua utas, menghalang berbilang utas daripada mengakses sumber yang dilindungi secara serentak.
Unterscheidung zwischen Mutex und kritischem Abschnitt:
Dalam Windows cuma, objek bahagian kritikal menawarkan alternatif kepada mutex. Objek bahagian kritikal lebih pantas dan hanya boleh dilihat oleh urutan pelaksananya. Walau bagaimanapun, secara umum, istilah "bahagian kritikal" merujuk kepada kawasan kod yang dilindungi oleh mutex.
Ein einfaches Mutex-Beispielprogramm:
Berikut ialah program yang dipermudahkan yang menunjukkan pelaksanaan mutex asas:
#include <iostream> #include <thread> #include <mutex> using namespace std; mutex m; // Mutex for synchronization int i = 0; // Shared variable void makeCall() { m.lock(); // Acquire mutex lock cout << "Thread ID: " << this_thread::get_id() << endl; cout << "Value of i: " << i << endl; i++; // Increment shared variable m.unlock(); // Release mutex lock } int main() { // Create threads and assign the makeCall function to each thread t1(makeCall); thread t2(makeCall); thread t3(makeCall); // Join threads to wait for completion t1.join(); t2.join(); t3.join(); return 0; }
Dalam program ini, beberapa utas cuba untuk akses pembolehubah kongsi i secara serentak. Mutex memastikan bahawa hanya satu utas boleh mengakses i pada satu masa, menghalang rasuah data.
Atas ialah kandungan terperinci Bagaimanakah mutex berfungsi seperti pemegang pintu pondok telefon?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!