Junior — Middle
Go tilida sync.Cond shartli o'zgaruvchasi nima va u nima uchun ishlatiladi, tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Go tilida sync.Cond — bu shartli o'zgaruvchi amalga oshiradigan tuzilma bo'lib, goroutinlarni sinxronlashtirish uchun ishlatiladi. U bir yoki bir nechta goroutinlarni muayyan shartning bajarilishini kutishga imkon beradi va boshqa goroutinlarga bu shart o'zgarganligini bildirish imkonini beradi.
sync.Cond ning asosiy metodlari:
Wait()— hozirgi goroutinani boshqa goroutinlarSignal()yokiBroadcast()chaqirilguncha bloklaydi.Signal()— shartli o'zgaruvchida kutayotgan bir gorutinni uyg'otadi.Broadcast()— shartli o'zgaruvchida kutayotgan barcha goroutinlarni uyg'otadi.
Foydalanish misoli:
var mu sync.Mutex
cond := sync.NewCond(&mu)
// Signal kutayotgan goroutine
go func() {
mu.Lock()
cond.Wait() // signalni kutadi
// uyg'onganidan so'ng, harakatlarni bajaradi
mu.Unlock()
}()
// Signal yuboradigan goroutine
mu.Lock()
cond.Signal() // bir goroutinini uyg'otadi
mu.Unlock()
Shu tarzda, sync.Cond bir nechta goroutinlarning muayyan shartlar bajarilishini kutayotgan ishlarini muvofiqlashtirishga yordam beradi.