Goroutines

Duration: 15 min  •  Difficulty: Hard

Goroutine adalah fitur "killer app" dari Go. Ia memungkinkan fungsi berjalan di latar belakang (asynchronous) secara bersamaan dengan fungsi lain.

Difference with Threads

Goroutine jauh lebih ringan daripada OS Thread. Anda bisa menjalankan ribuan Goroutine sekaligus dengan memori yang sangat kecil.

How to use

Cukup tambahkan kata kunci go di depan pemanggilan fungsi.

MAIN.GO
package main
import (
"fmt"
"time"
)
func cetakAngka(label string) {
for i := 1; i <= 3; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(label, ":", i)
}
}
func main() {
// Jalankan di background (Thread baru)
go cetakAngka("Background")
// Jalankan di thread utama
cetakAngka("Utama")
// Kita perlu menunggu sebentar, karena jika main selesai,
// semua goroutine background akan dimatikan paksa.
time.Sleep(500 * time.Millisecond)
}