Async Parallel: Menjalankan komputasi dimasing2 threads pada waktu yang bersamaan.
Penggunaan: CPU bound computations, data intensive computations(datanya banyak dan di split processingnya).
Async Concurrent: Scheduling multiple tasks untuk dieksekusi pada waktu bersamaan atau tidak.
Penggunaan: IO bound computation, contoh IO bound computation: web services, microservice, file services(kadang blocking, pake iouring kalau runtimenya support iouring), apapun lah yang sering keluar-masuk motherboard.
Kalau async runtime nya pake future/async-await, pastikan code yang dijalankan gak blocking(komputasi berat), karena future/async-await itu cooperative scheduling, kalau blocking semua kena halt. Kalau runtime nya udah otomatis nge-detect mana yang blocking mana yang gak, dan gak perlu manual preemption, maka harusnya gak perlu dipusingin, contohL goroutine nya golang.
Kpn harus menggunakan Non Blocking / Async ? Terimakasih