Concurrency pada Golang-Part 1

Best Praktis Pengunaan Go Routine dan Channel

D. Husni Fahri Rizal
The Legend
3 min readFeb 21, 2021

--

Pada penjelasan Best Praktis Basic Golang — Part 1 dan Best Praktis Basic Golang — Part 2 telah di paparkan bagaimana kita menggunakan soal-soal yang ada pada euler project untuk memahami logical pemograman dan perintah-perintah dasar Golang.

Pemograman pada dasarnya bukanlah hanya berfokus pada logical thinking tetapi ada beberapa hal lainnya yang perlu kita pelajari seperti input-output atau bagaimana concurrency diimplementasikan pada bahasa tersebut. Pada kesempatan ini kita akan membahas bagaimana implemetnasi concurrency pada Golang.

Pada pembahasan sebelumnya kita teleh membahas pengertian dari cuncurrency.

Concurrency adalah teknik pemrograman yang digunakan untuk menyelesaikan permasalahan dengan banyak request atau banyak prosess yang diselesaikan dalam waktu yang sama. Ciri utama dari proses concurrent adalah proses satu dengan proses yang lain tidak akan bisa dilakukan secara bersamaan pada suatu resource tertentu. Biasanya proses satu bergantian dengan proses lainnya. Dikarenakan sangat cepat jadi terkadang terlihat seperti dilakukan bersamaan.

Golang sudah mendukung cuncurrency secara defalut sehingga kita tidak membutuhkan library tambahan apapun. Konon golang di buat sebagi bahasa pemograman yang mengedepankan cuncurrency secara baik dan mudah.

Kenapa Kita Membutuhkan Concurrency

Apabila kita lihat kembali solusi-solusi yang kita buat pada semua penyelesaian semua soal-soal pada proyek euler kita hanya menyelesaikan dengan cara scyncromous dan menyelesaikannya tanpa penerapan concurrecy sehinga apabila data yang kita selesaikan cukup besar maka waktu pemrosesan semakin lama.

Berikut contoh sederhana perbandingan pemrosesan data tanpa dan menggunkan concurrecy.

Apabila kita eksekusi kode di atas baik untuk jumlah data yang sedikit ataupun banyak, kode tetap akan di jalankan pada singgle core prosesor sehingga kita masih dapat meningkatkan kecepatan pemrosesan dengan cara menjalankannya secara pararel.

Berikut adalah potongan code yang sudah kita terapkan concurrency.

Berikut adalah semua code jika kita gabungkan.

Apabila kita eksekusi gabungan code di atas menghasilkan.

Dari eksekusi code, jelas terlihat jika kita menerapkan concurrency waktu proses menjadi lebih cepat sampai kira-kira 4 kali. Apakah penggunaan concurrency semudah ini!!! Untuk dapat mengetahuinya lebih dalam mengenai concurrency pada Golang akan dilanjutkan pada pembahasan Concurrency pada Golang — Part 2.

References

  1. https://medium.com/the-legend/best-praktis-basic-golang-part-1-2cf8111a695d
  2. https://medium.com/the-legend/best-praktis-basic-golang-part-2-cbb8aec9c816
  3. https://medium.com/the-legend/golang-vs-java-concurrency-351ca5a845cb

Sponsor

Membutuhkan kaos dengan tema pemrograman :

Kafka T-shirt

Elastic T-shirt

Dapat menghubungi The Legend.

--

--

D. Husni Fahri Rizal
The Legend

Engineering Leader | Start-Up Advisor | Agile Coach | Microservices Expert | Professional Trainer | Investor Pemula