GO : Goroutines
Dalam bahasa pemrograman Go, mendukung adanya goroutine. Sebuah goroutine adalah thread yang ringan dari eksekusi.
package main
import "fmt"
func f(from string) {
for i := 0; i < 3; i++ {
fmt.Println(from, ":", i)
}
}
func main() {
//Anggap saja kita memiliki sebuah fungsi f(s). Hal ini adalah yang memanggil dengan
cara biasa, dan menjalankannya serempak.
f("direct")
//Untuk memanggil fungsi ini dalam goroutine, gunakan go f(s). Goroutine baru ini akan
mengeksekusi bersamaan dengan memanggil satu.
go f("goroutine")
//Bisa juga memulai goroutine untuk fungsi panggilan anonim.
go func(msg string) {
fmt.Println(msg)
}("going")
//Dua goroutines ini berjalan secara asynchronously di goroutines terpisah sekarang, jadi
eksekusi jatuh sampai di sini. Kode Scanln ini membutuhkan kita
menekan tombol sebelum keluar program.
var input string
fmt.Scanln(&input)
fmt.Println("done")
}
Output
//Ketika kita menjalankan program ini, kita melihat output dari pemblokiran panggilan pertama, maka output disisipkan dari dua gouroutines. Interleaving ini mencerminkan goroutines yang dijalankan secara bersamaan oleh runtime Go.
direct : 0
direct : 1
direct : 2
goroutine : 0
going
goroutine : 1
goroutine : 2
<enter>
done
Source
Comments
Post a Comment