GO : Channels
Bahasa pemrograman Go, memiliki channels yang berguna sebagai saluran untuk menghubungkan goroutines secara bersamaan. Anda dapat mengirim nilai-nilai ke dalam saluran dari satu goroutine dan menerima nilai-nilai ke dalam goroutine lain.
package main
import "fmt"
func main() {
//Membuatchannel baru dengan menggunakan keyword make(chan val-type).
messages := make(chan string)
//Mengirim nilai ke dalam channels menggunakan keyword channel <- syntax. Disini kita mengirim “ping” ke pesan channel yang dibuat diatas, dari goroutine baru.
go func() { messages <- "ping" }()
//Sebuah <- channel syntax menerima nilai dari channel. Disini kita akan menerima pesan “ping” dan print out.
msg := <-messages
fmt.Println(msg)
}
Ketika dijalankan, program pesan “ping” berhasil
melewati dari satu goroutine ke goroutine yang lainnya via channel
yang dibuat tadi.
Secara default mengirim dan menerima blok sampai kedua pengirim dan
penerima sudah siap. Properti ini memungkinkan kita untuk menunggu di
akhir program untuk "ping" pesan tanpa harus menggunakan
sinkronisasi lainnya.
Output
ping
Source
Comments
Post a Comment