Pthread_cond_wait-д яагаад мутекс хэрэгтэй байна вэ?
Pthread_cond_wait-д яагаад мутекс хэрэгтэй байна вэ?

Видео: Pthread_cond_wait-д яагаад мутекс хэрэгтэй байна вэ?

Видео: Pthread_cond_wait-д яагаад мутекс хэрэгтэй байна вэ?
Видео: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Арваннэгдүгээр
Anonim

The мутекс нөхцөл хувьсагчийг өөрөө хамгаалахад ашигладаг. Тийм учраас чи хэрэгтэй энэ нь таны өмнө түгжигдсэн хийх хүлээх. Дараа нь нөхцөл хувьсагчийг дохио өгөх эсвэл цацах үед хүлээлгийн жагсаалтын нэг буюу хэд хэдэн хэлхээ сэрэх ба мутекс тэр хэлхээнд дахин ид шидээр түгжигдэх болно.

Үүнтэй холбогдуулан Pthread_cond_wait mutex-ийн түгжээг тайлж байна уу?

The pthread_cond_хүлээ () функц нь нөхцөл хувьсагч cond дээрх дуудлагын урсгалыг блоклодог ба түгжээг тайлдаг холбоотой мутекс мутекс . Дуудлага хийх утас түгжигдсэн байх ёстой мутекс нөхцөл хувьсагчийг хүлээхээс өмнө. Функцээс буцаж ирэхэд мутекс дахин түгжигдсэн бөгөөд дуудлага хийх хэлхээний эзэмшдэг.

Дараа нь асуулт гарч ирнэ, яагаад mutex хэрэгтэй вэ? Энэ нь нэг удаад зөвхөн нэг урсгал кодыг гүйцэтгэхийг баталгаажуулдаг бөгөөд энэ нь эргээд өгөгдлийн бүтцэд хандах хандалтыг хязгаарладаг. Энэ нь CPU-ийн дахин эрэмбэлэгдсэнээс үл хамааран хоёр утас нь тухайн санах ойг бүрэн, зөв харах боломжийг олгодог. The мутекс зэрэгцээ програмчлал хийх үед зайлшгүй шаардлагатай.

Дээрхээс гадна нөхцөл хувьсагчид яагаад мутекс хэрэгтэй вэ?

The мутекс нь хамгаалахад ашигладаг нөхцөл хувьсагч өөрөө. Тийм учраас чи хэрэгтэй Энэ нь таны өмнө түгжигдсэн хийх хүлээх. Дараа нь хэзээ нөхцөл хувьсагч байна хүлээлгийн жагсаалтад байгаа нэг буюу хэд хэдэн хэлхээнд дохио өгөх эсвэл цацах болно сэрэх ба mutex болно тэр хэлхээнд дахин ид шидээр түгжигдэх болно.

Бидэнд нөхцөл хувьсагч яагаад хэрэгтэй вэ?

Нөхцөл хувьсагч гижигдэх хүртэл утаснуудын багцыг унтахыг зөвшөөр! Та нэг утас эсвэл унтаж байгаа бүх утсыг гижигдэж болно. Хэрэв та зөвхөн нэг утсыг сэрээх юм бол үйлдлийн систем аль утсыг сэрээхээ шийднэ.

Зөвлөмж болгож буй: