Table of Contents
Reading progress0/7
Pernah nungguin request API lambat dan server jadi ikut lemot? Seringnya ini masalah I/O blocking. Concurrency dan async I/O adalah cara membuat server menangani banyak pekerjaan tanpa menambah mesin berlebihan.
Apa itu Concurrency vs Parallelism?#
- Concurrency: mengatur banyak tugas yang berjalan seolah-olah bersamaan.
- Parallelism: benar-benar berjalan di saat yang sama pada banyak core.
Analogi: satu kasir melayani beberapa pelanggan bergantian (concurrency) vs beberapa kasir melayani masing-masing pelanggan (parallelism).
Kenapa Penting?#
- Skalabilitas lebih baik: tangani ribuan koneksi dengan resource terbatas.
- Pengalaman pengguna lebih responsif.
- Biaya infrastruktur bisa ditekan.
Bagaimana Menerapkannya?#
- CPU-bound → Gunakan multi-processing / thread pool.
- I/O-bound → Gunakan async I/O (event loop) atau non-blocking I/O.
- Queue + worker untuk pekerjaan panjang (background jobs).
Contoh Singkat (Node.js)#
Python Asyncio (I/O-bound)#
Anti-Pattern Umum#
- Campur blocking I/O di jalur async (menghambat event loop).
- Over-threading tanpa pengawasan (context switching mahal).
- Tidak memberi timeout/retry untuk I/O eksternal.
Penutup#
Pahami karakter beban kerja kamu—CPU-bound atau I/O-bound—lalu pilih alat yang tepat: thread/process untuk CPU, async I/O untuk I/O. Dengan begitu, aplikasi lebih responsif, hemat resource, dan siap skala.