Go

Pola Concurrency

Worker pool, pipeline, fan-out/fan-in, cancellation, context, errgroup, semaphore

24 pertanyaan wawancaraยท
Mid-Level
1

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.

2

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.

3

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.

4

Bagaimana cara menutup channel dengan benar dalam worker pool untuk menandai akhir pemrosesan?

5

Apa perbedaan antara fan-out dan fan-in?

+21 pertanyaan wawancara

Kuasai Go untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis