Функція time.Sleep() у Golang із прикладами

Мовою Go, час пакети забезпечують функціональні можливості для визначення, а також часу перегляду.
The сон() функція в мові Go використовується для зупинки останньої процедури go принаймні на вказаний час d . А негативна або нульова тривалість сну спричинить миттєве повернення цього методу. Крім того, ця функція визначена під пакетом часу. Тут вам потрібно імпортувати пакет часу, щоб використовувати ці функції.

Синтаксис:

 func Sleep(d Duration) 

тут, d це тривалість часу для сну.

Повернене значення: Він призупиняє останню програму запуску на вказаний час, а потім повертає результат будь-якої операції після завершення сну.

приклад 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.....'> )> }>

Вихід:

 Sleep Over..... 

Тут після виконання наведеного вище коду, коли основна функція викликається, тоді через сон зазначена операція зупиняється на заданий час, після чого друкується результат.

приклад 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'> )> > }> }>

Вихід:

 output1 timeout....2 

Тут у наведеному вище коді output1 друкується як тривалість тайм-ауту (у методі After()) більша за час сну (у Sleep() методі), тому вихідні дані друкуються до того, як тайм-аут відображається, але після цього У наведеному нижче випадку тривалість тайм-ауту менша за час очікування, тому перед друком результату відображається тайм-аут, отже, друкується тайм-аут….2.