Modul ini memperkenalkan konkurensi bawaan Go. Pembahasan dimulai dari goroutine sebagai satuan kerja yang dijalankan bersamaan, dilanjutkan dengan detektor race untuk menangkap berbagi data yang tidak tersinkronisasi, lalu channel tanpa penyangga, channel berpenyangga, arah channel, dan select beserta batas waktunya. Setiap topik disertai program utuh beserta keluaran aslinya, sehingga perilaku konkuren dapat diulang di terminal. Modul ini menjadi dasar bagi modul Sinkronisasi dan Context yang melengkapi alat pengoordinasian goroutine.
Goroutine dan Channel
Modul konkurensi pertama: goroutine, detektor race, channel tanpa dan dengan buffer, arah channel, dan select.
0/0 selesai
- Goroutine
Kata kunci go, thread ringan, dan intuisi penjadwal.
- Demo Race Condition
Flag -race dan alasan berbagi data menuntut disiplin.
- Dasar Channel
Channel tanpa buffer sebagai alat sinkronisasi.
- Channel dengan Buffer
Semantik kapasitas dan backpressure.
- Arah Channel
Tipe kirim-saja dan terima-saja.
- select
Multiplexing channel dan batas waktu dengan time.After.