Pendeknya,
Concurrency berarti banyak tugas yang memulai, menjalankan, dan menyelesaikan dalam periode waktu yang tumpang tindih, tanpa urutan tertentu. Paralelisme adalah ketika beberapa tugas ATAU beberapa bagian dari tugas unik benar-benar berjalan pada saat yang sama, misalnya pada prosesor multi-core.
Ingatlah bahwa Concurrency dan paralelisme BUKAN hal yang sama.
Perbedaan antara konkurensi vs paralelisme
Sekarang mari kita buat daftar perbedaan yang luar biasa antara konkurensi dan paralelisme.
Concurrency adalah ketika dua tugas dapat mulai, dijalankan, dan selesai dalam periode waktu yang tumpang tindih. Paralelisme adalah ketika tugas secara harfiah dijalankan pada saat yang sama, misalnya. pada prosesor multi-core.
Concurrency adalah komposisi dari proses yang dieksekusi secara independen, sementara paralelisme adalah eksekusi simultan dari (kemungkinan terkait) perhitungan.
Concurrency adalah tentang berurusan dengan banyak hal sekaligus. Paralelisme adalah tentang melakukan banyak hal sekaligus.
Suatu aplikasi dapat bersamaan - tetapi tidak paralel, yang berarti bahwa ia memproses lebih dari satu tugas pada saat yang sama, tetapi tidak ada dua tugas yang dijalankan pada saat yang bersamaan.
Suatu aplikasi dapat paralel - tetapi tidak bersamaan, yang berarti bahwa ia memproses beberapa tugas sub-tugas dalam CPU multi-core pada saat yang bersamaan.
Suatu aplikasi bisa tidak paralel - atau bersamaan, yang berarti bahwa ia memproses semua tugas satu per satu, secara berurutan.
Suatu aplikasi dapat bersifat paralel - dan bersamaan, yang berarti bahwa ia memproses banyak tugas secara bersamaan dalam multi-core CPU secara bersamaan.
Konkurensi
Concurrency pada dasarnya berlaku ketika kita berbicara tentang minimum dua tugas atau lebih. Ketika suatu aplikasi mampu menjalankan dua tugas secara virtual pada waktu yang bersamaan, kami menyebutnya aplikasi bersamaan. Meskipun di sini tugas-tugas berjalan sepertinya secara bersamaan, tetapi pada dasarnya mereka MUNGKIN tidak. Mereka mengambil keuntungan dari fitur pengiris waktu CPU dari sistem operasi di mana setiap tugas menjalankan bagian dari tugasnya dan kemudian pergi ke keadaan menunggu. Saat tugas pertama dalam status menunggu, CPU ditugaskan ke tugas kedua untuk menyelesaikan bagian tugasnya.
Sistem operasi berdasarkan prioritas tugas, dengan demikian, menetapkan CPU dan sumber daya komputasi lainnya, misalnya memori; secara bergantian untuk semua tugas dan beri mereka kesempatan untuk menyelesaikan. Untuk pengguna akhir, tampaknya semua tugas berjalan secara paralel. Ini disebut konkurensi.
Paralelisme
Paralelisme tidak membutuhkan dua tugas untuk eksis. Secara harfiah menjalankan bagian tugas ATAU beberapa tugas, pada saat yang sama menggunakan infrastruktur multi-core CPU, dengan menetapkan satu inti untuk setiap tugas atau sub-tugas.
Paralelisme membutuhkan perangkat keras dengan beberapa unit pemrosesan, pada dasarnya. Dalam CPU single core, Anda mungkin mendapatkan konkurensi tetapi BUKAN paralelisme.
Metode asinkron
Ini tidak terkait dengan Konkurensi dan paralelisme, asinkron digunakan untuk menyajikan kesan penugasan serentak atau paralel, tetapi secara efektif pemanggilan metode asinkron biasanya digunakan untuk proses yang perlu dilakukan bekerja jauh dari aplikasi saat ini dan kami tidak ingin tunggu dan blokir aplikasi kami menunggu tanggapan.