- Published on
Concurrency vs Parallelism
- Authors
- Name
- Panuwat Boonrod
- @nilpanuwat
Introduction
หลายคนอาจจะรู้อยู่แล้ว หรือ ยังไม่รู้ เกี่ยวกับ Concurrency และ Parallelism ว่าต่างกันอย่างไร สำหรับท่านใดยังไม่รู้ วันนี้จะมาแนะนำสั้นๆให้ได้คอนเซปต์ ว่าแตกต่างกันอย่างไร
Concurrency
Concurrency เปรียบเสมือนการทำงานแบบสลับกันทำโดยที่ถ้ามี อีก task รออยู่ในระหว่างทำงานแล้ว จะสลับไปทำอีก tasks นึงก่อน จนกว่าจะเสร็จ และ สลับไปทำ task หนึ่ง, สลับไปมา ยกตัวอย่างง่ายๆ เหมือนเรากำลังทำอาหาร และเรา กำลังเตรียมวัตถุดิบ เราต้มน้ำ และ ระหว่างรอน้ำเดือด เราไปหั่นผัก หั่นผักเสร็จ ถ้าน้ำยังไม่เดือด เราไปหั่นเนื้อสัตว์ต่อ จนน้ำเดือด เราจึงใส่เนื้อสัตว์ และผักลงไป โดยทำโดยคนๆเดียว
Parallelism
Parallelism จะเปรียบเสมือนการทำงานแบบพร้อมกันเลย เปรียบเสมือนมี 2 คน ทำงานไปพร้อมๆกัน
จากตัวอย่างเดิม คนแรกต้มน้ำ คนที่สองหั่นผัก คนแรกต้มน้ำเสร็จ และหั่นเนื้อสัตว์ไปพร้อมๆกัน โดยที่คนแรกไม่ต้องรอ คนที่สองหั่นผักเสร็จ แบบนี้จะใช้จำนวนคนเยอะกว่า แต่งานของแต่ละคนจะไม่หนัก เท่ากับแบบ concurrency