
Pola Concurrency
Worker pool, pipeline, fan-out/fan-in, cancellation, context, errgroup, semaphore
1Apa itu worker pool dalam Go?
Apa itu worker pool dalam Go?
Jawaban
Worker pool adalah pola concurrency yang menggunakan sejumlah goroutine (worker) tetap untuk memproses task dari channel bersama. Pola ini memungkinkan pembatasan jumlah goroutine aktif dan pengendalian konsumsi sumber daya sistem. Berbeda dengan membuat satu goroutine per task, worker pool menggunakan kembali sekumpulan worker untuk memproses volume task yang besar secara efisien.
2Apa keuntungan utama menggunakan worker pool dibandingkan membuat satu goroutine per task?
Apa keuntungan utama menggunakan worker pool dibandingkan membuat satu goroutine per task?
Jawaban
Membatasi jumlah goroutine aktif memungkinkan pengendalian konsumsi sumber daya sistem (memori dan CPU) serta menghindari kelebihan beban. Membuat satu goroutine per task dapat menghasilkan ribuan atau jutaan goroutine bersamaan, membuat scheduler jenuh dan menghabiskan memori. Worker pool mempertahankan jumlah worker yang optimal yang memproses task secara berurutan, memastikan kinerja yang dapat diprediksi bahkan di bawah beban tinggi.
3Apa itu pipeline dalam konteks concurrency di Go?
Apa itu pipeline dalam konteks concurrency di Go?
Jawaban
Pipeline adalah serangkaian tahap (stage) yang terhubung oleh channel, di mana setiap tahap merupakan sekelompok goroutine yang menjalankan fungsi yang sama. Setiap tahap menerima data melalui channel input, melakukan pemrosesan, lalu mengirim hasil melalui channel output. Pola ini memungkinkan penguraian pemrosesan kompleks menjadi tahap-tahap sederhana yang dapat digunakan kembali, memudahkan komposisi dan pengujian setiap komponen secara independen.
Bagaimana cara menutup channel dengan benar dalam worker pool untuk menandai akhir pemrosesan?
Apa perbedaan antara fan-out dan fan-in?
+21 pertanyaan wawancara
Topik wawancara Go lainnya
Dasar-Dasar Go
Struktur Data Go
Interface Go
Penanganan Error
Dasar-Dasar Goroutine
Channels
Go Modules
Server HTTP
Klien HTTP
Enkoding JSON
Database/SQL
Paket context
Testing
Primitif Sinkronisasi
Framework web Go
Desain API REST
gRPC
Reflection
Manajemen Memori
Optimasi Performa
Generics
Go Design Patterns
Microservices
Keamanan dan Autentikasi
Docker & Containerization
Kubernetes Basics
Go Tingkat Lanjut
Pengembangan CLI
Kuasai Go untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis