Skip to main content

2 posts tagged with "Golang"

Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency.

View All Tags

How to terminate goroutines in golang

· One min read
Shekhar Patil
Full stack developer.

How to terminate goroutines in golang?

Method 1: Using Channels to Signal Termination

package main

import (
"fmt"
"time"
)

func performTask(terminateChan <-chan bool) {
for {
select {
case <-terminateChan:
fmt.Println("Task terminated by channel")
return
default:
fmt.Println("Task is running")
time.Sleep(time.Second)
}
}
}

func main() {
terminateChan := make(chan bool)

go performTask(terminateChan)

time.Sleep(5 * time.Second)
terminateChan <- true
time.Sleep(time.Second)
fmt.Println("Main Goroutine exited")
}

Worker pool pattern in Golang

· 3 min read
Shekhar Patil
Full stack developer.

What is worker pool pattern?

The Worker Pool pattern is a concurrency pattern in Go that allows you to manage and control the number of goroutines working on a set of tasks. This pattern is particularly useful when you have a large number of tasks to process and want to limit the number of concurrent goroutines to prevent excessive resource usage.

Worker pool pattern