Belajar Golang #23 : Perbedaan Concurrency dan Parallelism

Perbedaan Concurrency dan Parallelism – Halo semua selamat datang di seri belajar golang bahasa indonesia. Sekarang sudah sampai pada tutorial yang ke – 23 dimana akan membahas mengenai perbedaan antara Concurrency(Konkurensi) dan Parallelism(Paralelisme).

Sebagai seorang developers website, khususnya backend engineering harus mengerti mengenai hal ini. Hal ini sangat penting untuk menangani sebuah proses yang bersamaan dalam sekali waktu.

Banyak yang beranggapan bahwa Concurrency sama dengan Parallelism, padahal yang sebenarnya terjadi berbeda.

Apa itu Concurrency ?

Kita mulai dari pengertian Concurrency, Concurrency adalah kemampuan untuk menangani permintaan dengan sekaligus. Yang perlu di garis bawahi “melakukan dengan sekaligus” artinya tidak di lakukan secara bersamaan.

Kita ambil contoh di dalam kehidupan nya, misalnya ada seseorang yang sedang melakukan lari pagi. Di tengah perjalanan tali sepatunya lepas, maka orang itu akan membernarkan tali sepatunya dulu kemudian lari lagi.

Itulah contoh serhana dari Concurrency, di mana seseorang dapat menali sepatu dan melanjutkan lari paginya kembali.

Apa itu Parallelism ?

Parallelism berbeda dengan Concurrency. Pengertian Concurrency sendiri adalah kemapuan untuk menangani permintaan / proses dalam waktu satu waktu yang serentak / bersamaan.

Kita ambil contoh sederahana dari Parallelism, Seseorang melakukan lari di pagi hari. Selain itu orang itu juga mendengarkan musik. Sehingga di saaat melakukan lari pagi orang itu bersamaan dengan mendengarkan musik.

Berdasarkan contoh di atas bahwa orang tersebut melakukan 2 hal secara bersamaan yaitu lari pagi dan mendengarkan musik.

Concurrency dan Parallelism di Golang

Concurrency dan Parallelism di golang menggunakan goroutine, di mana isi dari goroutine inilah yang melakukan pekerjaan, goroutine di golang bisa di sebut mini thread bukan thread seperti yang ada di bahasa program java.

Sudah di ketahui bersama bahwa Concurrency berbeda dengan Parallelism. Mungkin banyak yang bertanya kenapa bisa dilakukan proses secara bersamaan. Sebenarnya proses bersamaan dalam satu waktu di dasari oleh core yang ada di dalam komputer.

Misalnya saja Komputer anda mempunya 2 core processor maka mempunya kemapuan menjalankan 2 proses dalam waktu yang bersamaan. Faktor penentu keberhasilan Parallelism yaitu jumlah core pada komputer. Istimewanya di golang kita bisa menentukan berapa banyak core yang ingin kita pakai.

Di atas telah di jelaskan mengenai contoh penggunaan nyata goroutine, namun belum ke bagian teknis.

Saya akan berikan contoh penggunaan goroutine di dalam bahasa golang. Asumsikan kita mempunyai halaman web maupun API yang digunakan untuk melakukan posting data dan mengambil postingan data lain. Hal ini dapat di lakukan dalam waktu yang sama ketika mempunya core proccesor lebih dari satu.

Sehingga rumus yang bisa di ambil tentang mengenai perbedaan Concurrency dengan Parallelism yaitu :

  • Concurrency : Di lakukan Sekaligus.
  • Parallelism : Di lakukan dalam satu waktu yang sama.

Keuntungan menggunakan Goroutine, baik Concurrency maupun Parallelism

Berikut ini keuntungan yang bisa kita dapat ketika menggunakan mini thread di golang :

Efisien

Dengan menggunakan gorotine golang dapat melalikan tugas secara efisien, dimana dapat menjalankan tugas yang bersamaan dalam sekali waktu.

Lebih cepat

Di karenakan tidak menunggu satu proses untuk melakukan proses berikut nya maka proses permintaan dapat di proses lebih cepat. Selain itu ketika menjalankan satu goruotine hanya perlu 2 Kb saja.

Sampai sini sudah paham ?

Pada seri selanjutnya kita akan belajar mengenai goroutine dan cara penggunaannya.

Sekian penjelasan mengenai Perbedaan Concurrency dan Parallelism. Terima Kasih.

Leave a Reply