time.Sleep() Functie in Golang met voorbeelden
In Go-taal, tijd pakketten biedt functionaliteit voor zowel het bepalen als bekijken van de tijd.
De Slaap() functie in Go-taal wordt gebruikt om de laatste go-routine voor minimaal de aangegeven duur te stoppen D . En een negatieve of nul slaapduur zal ervoor zorgen dat deze methode onmiddellijk terugkeert. Bovendien is deze functie gedefinieerd onder het tijdpakket. Hier moet u het tijdpakket importeren om deze functies te kunnen gebruiken.
Syntaxis:
func Sleep(d Duration)
Hier, D is de duur van de slaap.
Winstwaarde: Het pauzeert de laatste go-routine voor de aangegeven duur en retourneert vervolgens de uitvoer van elke bewerking nadat de slaap voorbij is.
Voorbeeld 1:
// Golang program to illustrate the usage of> // Sleep() function> > // Including main package> package main> > // Importing fmt and time> import (> > 'fmt'> > 'time'> )> > // Main function> func main() {> > > // Calling Sleep method> > time> .Sleep(8 *> time> .Second)> > > // Printed after sleep is over> > fmt.Println(> 'Sleep Over.....'> )> }> |
Uitgang:
Sleep Over.....
Hier, na het uitvoeren van de bovenstaande code wanneer de hoofdfunctie wordt aangeroepen, vanwege Slaap methode wordt de aangegeven bewerking voor de opgegeven duur gestopt, waarna het resultaat wordt afgedrukt.
Voorbeeld 2:
// Golang program to illustrate the usage of> // Sleep() function> > // Including main package> package main> > // Importing time and fmt> import (> > 'fmt'> > 'time'> )> > // Main function> func main() {> > > // Creating channel using> > // make keyword> > mychan1 := make(chan string, 2)> > > // Calling Sleep function of go> > go func() {> > time> .Sleep(2 *> time> .Second)> > > // Displayed after sleep overs> > mychan1 <-> 'output1'> > }()> > > // Select statement> > select {> > > // Case statement> > case> out := <-mychan1:> > fmt.Println(out)> > > // Calling After method> > case> <-> time> .After(3 *> time> .Second):> > fmt.Println(> 'timeout....1'> )> > }> > > // Again Creating channel using> > // make keyword> > mychan2 := make(chan string, 2)> > > // Calling Sleep method of go> > go func() {> > time> .Sleep(6 *> time> .Second)> > > // Printed after sleep overs> > mychan2 <-> 'output2'> > }()> > > // Select statement> > select {> > > // Case statement> > case> out := <-mychan2:> > fmt.Println(out)> > > // Calling After method> > case> <-> time> .After(3 *> time> .Second):> > fmt.Println(> 'timeout....2'> )> > }> }> |
Uitgang:
output1 timeout....2
Hier wordt in de bovenstaande code uitvoer1 afgedrukt omdat de duur van de time-out (in de methode After()) groter is dan de slaaptijd (in de methode Sleep()), dus de uitvoer wordt afgedrukt voordat de time-out wordt weergegeven, maar daarna wordt de Het onderstaande geval heeft een time-outduur die korter is dan de slaaptijd, dus voordat de uitvoer wordt afgedrukt, wordt de time-out weergegeven. Daarom wordt time-out….2 afgedrukt.