time.Sleep()-funktio Golangissa esimerkein
Go-kielellä aika paketit tarjoaa toimintoja sekä katseluajan määrittämiseen että katseluaikaan.
The Nukkua() Go-kielen toimintoa käytetään pysäyttämään viimeisin go-rutiini vähintään ilmoitetuksi ajaksi d . Ja negatiivinen tai nolla unen kesto saa tämän menetelmän palaamaan välittömästi. Lisäksi tämä toiminto on määritelty aikapaketissa. Täällä sinun on tuotava aikapaketti käyttääksesi näitä toimintoja.
Syntaksi:
func Sleep(d Duration)
Tässä, d on unen kesto.
Palautusarvo: Se keskeyttää viimeisimmän käynnistysrutiinin ilmoitetuksi ajaksi ja palauttaa minkä tahansa toiminnon tulosteen lepotilan päätyttyä.
Esimerkki 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.....'> )> }> |
Lähtö:
Sleep Over.....
Tässä yllä olevan koodin suorittamisen jälkeen, kun päätoimintoa kutsutaan silloin johtuen Nukkua menetelmällä ilmoitettu toiminto pysäytetään tietyksi ajaksi ja tulos tulostetaan.
Esimerkki 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'> )> > }> }> |
Lähtö:
output1 timeout....2
Tässä yllä olevassa koodissa tulos1 tulostetaan, koska aikakatkaisun kesto (After()-menetelmässä) on suurempi kuin lepotila (Sleep()-menetelmässä), joten tulos tulostetaan ennen aikakatkaisun näyttämistä, mutta sen jälkeen alla olevassa tapauksessa aikakatkaisun kesto on lyhyempi kuin lepotilan aika, joten ennen tulosteen tulostamista aikakatkaisu näytetään, joten aikakatkaisu….2 tulostetaan.