From 9fad6d576e33ebfed8ca36c4a210c111b6ed4036 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Sun, 28 Apr 2024 15:33:42 +0530 Subject: [PATCH] Add select --- cselect/cselect.go | 30 ++++++++++++++++++++++++++++++ main.go | 6 ++++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 cselect/cselect.go diff --git a/cselect/cselect.go b/cselect/cselect.go new file mode 100644 index 0000000..1474519 --- /dev/null +++ b/cselect/cselect.go @@ -0,0 +1,30 @@ +package cselect + +import ( + "fmt" + "time" +) + +func Select() { + c1, c2 := make(chan string), make(chan string) + + go func() { + time.Sleep(2 * time.Second) + c1 <- "First secret!" + }() + + go func() { + time.Sleep(2 * time.Second) + c2 <- "Second secret!" + }() + + for range 2 { + select { + case msg1 := <-c1: + fmt.Println("Received something from c1:", msg1) + case msg2 := <-c2: + fmt.Println("Received something from c2:", msg2) + } + } + +} diff --git a/main.go b/main.go index bd779b8..75fdaf3 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,8 @@ package main // import "git.sangeeth.dev/gobyexample/generics" // import "git.sangeeth.dev/gobyexample/errors" // import "git.sangeeth.dev/gobyexample/goroutines" -import "git.sangeeth.dev/gobyexample/channels" +// import "git.sangeeth.dev/gobyexample/channels" +import "git.sangeeth.dev/gobyexample/cselect" func main() { // runes.Runes() @@ -13,5 +14,6 @@ func main() { // generics.Generics() // errors.Errors() // goroutines.Goroutines() - channels.Channels() + // channels.Channels() + cselect.Select() }