Junior — Middle
Vai jūs varat izskaidrot, kas ir nosacījuma mainīgais sync.Cond Go valodā un kam tas tiek izmantots?
sobes.tech AI
Atbilde no AI
Go valodā sync.Cond ir struktūra, kas īsteno nosacījuma mainīgo un tiek izmantota gorutīnu sinhronizācijai. Tā ļauj vienai vai vairākām gorutīnām gaidīt, kamēr tiek izpildīts noteikts nosacījums, un informēt citus gorutīnus, ka šis nosacījums ir mainījies.
Galvenās sync.Cond metodes:
Wait()— bloķē pašreizējo gorutīnu, līdz cita gorutīna izsauksSignal()vaiBroadcast().Signal()— pamodina vienu gorutīnu, kas gaida nosacījuma mainīgajā.Broadcast()— pamodina visas gorutīnas, kas gaida nosacījuma mainīgajā.
Piemērs lietošanai:
var mu sync.Mutex
cond := sync.NewCond(&mu)
// Gorutīna, kas gaida signālu
go func() {
mu.Lock()
cond.Wait() // gaida signālu
// pēc pamodināšanas veic darbības
mu.Unlock()
}()
// Gorutīna, kas sūta signālu
mu.Lock()
cond.Signal() // pamodina vienu gorutīnu
mu.Unlock()
Tādējādi sync.Cond palīdz koordinēt vairākas gorutīnas, kas gaida, lai tiktu izpildīti noteikti nosacījumi.