Pthread_cond_signal гэж юу вэ?
Pthread_cond_signal гэж юу вэ?

Видео: Pthread_cond_signal гэж юу вэ?

Видео: Pthread_cond_signal гэж юу вэ?
Видео: Сигнализация для условных переменных (pthread_cond_signal vs pthread_cond_broadcast) 2024, Арваннэгдүгээр
Anonim

The pthread_cond_signal () функц нь заагдсан нөхцөл хувьсагчийн cond дээр хаагдсан урсгалуудын ядаж нэгийг блокоос гаргах ёстой (хэрэв cond дээр ямар нэгэн хэлхээ хаасан бол). Нөхцөл хувьсагч дээр нэгээс олон хэлхээг блоклосон тохиолдолд хуваарийн бодлого нь хэлхээг блокоос гаргах дарааллыг тодорхойлно.

Зүгээр л Pthread_cond_t гэж юу вэ?

ТОДОРХОЙЛОЛТ. The pthread_cond_хүлээ () болон pthread_cond_timedwait() функцууд нь нөхцөл хувьсагчийг блоклоход ашиглагддаг. Тэдгээрийг дуудлагын урсгалаар түгжигдсэн мутексээр дууддаг, эс тэгвээс тодорхойгүй үйлдэл гарах болно.

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

Цаашилбал, нөхцөл хувьсагчдыг хэрхэн ашигладаг вэ?

Ердийн байдлаар ашиглах , a нөхцөл илэрхийлэл нь мутекс түгжээний хамгаалалт дор үнэлэгддэг. Үед нөхцөл илэрхийлэл худал, утас дээр блок блок нөхцөл хувьсагч . The нөхцөл хувьсагч дараа нь өөрчлөх үед өөр thread-ээр дохио өгдөг нөхцөл үнэ цэнэ.

Pthread_mutex_t гэж юу вэ?

pthread_mutex_t mutex төрлийн объектыг зарлахад хэрэглэгддэг. ингэж: pthread_mutex_t mymutexvariable; Дараа нь та мутексийг түгжих, нээхийн тулд мутекс хувьсагчийг ашиглана.

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