How to make a delay in Go Language

The Sleep() method pauses the execution of the current thread temporarily. Sleep() is part of the time package. This method takes the duration as an argument. 


Here is an example code that shows how to make a delay in Go Language.

Here, 3*time.Second, means 3 seconds. This will sleep the current goroutine so other goroutines will continue to run.
package main

import (
"fmt"
"time"
)

func main() {
// Before sleep
fmt.Println("Before sleep the time is:", time.Now().Unix())

// pauses execution for 3 seconds
time.Sleep(3 * time.Second)

// After sleep
fmt.Println("After sleep the time is:", time.Now().Unix())
}

Output:




Goroutines

Goroutines are methods that run concurrently with other methods. Goroutines can be thought of as lightweight threads. The cost of creating a Goroutine is tiny when compared to a thread. 
Every concurrently executing activity in the Go language is known as Goroutines.


Another Example: Go program to print Odd, Even & Natural Numbers using Goroutines

The odd Goroutine sleeps initially for 300 milliseconds and then prints 1, then sleeps again and prints 2 and the same cycle happens till it prints 9. Similarly, the even Goroutine prints even numbers from 1 to 9 and has 450 milliseconds of sleep time. Similarly, the Natural Goroutine prints natural numbers from 1 to 9 has 350 milliseconds. The main Goroutine initiates the Odd, Even, and Natural Goroutines sleeps for 3000 milliseconds and then terminates.
package main

import (
"fmt"
"time"
)

func Natural() {
for i := 1; i <= 9; i++ {
time.Sleep(350 * time.Millisecond)
fmt.Printf("%d ", i)

}
}

func Odd() {
for i := 1; i <= 9; i++ {
time.Sleep(300 * time.Millisecond)
/* If 'i' is odd then print it */
if i%2 != 0 {
fmt.Printf("%d ", i)
}
}
}

func Even() {
for i := 1; i <= 9; i++ {
time.Sleep(450 * time.Millisecond)
/* If 'i' is even then print it */
if i%2 == 0 {
fmt.Printf("%d ", i)
}
}
}
func main() {
go Odd()
go Even()
go Natural()
time.Sleep(4000 * time.Millisecond)
fmt.Println("main terminated")
}

Output:

Comments

Popular posts from this blog

Spring Boot OpenAI Integration: Step-by-Step Guide

Orchestration-Based Saga Architecture and Spring Boot Microservices Implementation Guide

Spring Boot 3 + Angular 15 + Material - Full Stack CRUD Application Example