TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to GO

Golang Chan: Channels, Make Examples

Use the chan keyword to create channels. Run concurrent funcs that signal completion.
Channel, goroutine. A goroutine is a method called in an asynchronous way. A method can be called as a goroutine with the go-keyword. This creates many possibilities.Built-Ins
With channels, we can return values from our asynchronous goroutines. We specify channels with the chan-keyword. We make channels with make.
Channel example. Let us combine these concepts into a simple program that makes sense. This program creates a channel named "c." The channel returns an int.

Func: In this example we create a func and invoke it. We use the go-keyword to call it as a goroutine.

Computation: The func uses three nested for-loops to waste some time. It does nothing important.

Chan: The func returns the value of the variable res on the channel. This can be any int value.

Then: A PrintLn statements is executed—before the computation finishes. The channel result is waited for, and then printed.

Golang program that uses chan, makes channel package main import "fmt" func main() { // Make a channel that returns an int. c := make(chan int) // Call this func. go func() { // This does a long-running numerical computation. // ... It increments a number, then decrements it. res := 0 for i := 0; i < 100; i++ { for x := 0; x < 10000; x++ { for z := 0; z < 10000; z++ { res++ } for z := 0; z < 10000; z++ { res-- } } } // Return the counter on the channel. c <- res }() fmt.Println("HERE") // Wait for result of func, store value in local. res := <-c fmt.Println("DONE") fmt.Println("RESULT =", res) } Output HERE DONE RESULT = 0
With asynchronous programs, we can better wield the power of modern computers. We can compute results faster. But some complexity is introduced.
In its modern design, Go has a good solution to asynchronous problems. With chan and goroutines (that use the go keyword) we run code on several threads at once.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf