Concurrency และ Parallel คืออะไร
--
Concurrency เป็นการจัดการงานหลายๆงาน(multi-task)ในเวลาเดียวกัน เช่น ผู้ปฏิบัติงาน(worker) 1 คน มีงานที่ต้องทำหลายงานในเวลาเดียวกัน ดังภาพด้านล่าง
ผู้ปฏิบัติงานจะสามารถทำงานหลายๆงานที่เข้ามาพร้อมกันในเวลาเดียวกันได้อย่างไร?
คือการแบ่งงานออกเป็นงานย่อยๆ แล้วสลับการทำงาน ( context switching)เช่น ทำงานย่อยของ task1 แล้วไปทำงานย่อยของ task2ต่อ แล้วกลับมาทำงานย่อยของ task1ใหม่จนงานทั้งหมดเสร็จสมบูรณ์ ดังตัวอย่างด้านล่าง
Parallel เป็นการทำงานหลาย ๆ งานพร้อมกันในเวลาเดียวกัน เช่นมีงานที่ต้องทำ 2 งานหรือมากกว่า และมีผู้ปฏิบัติงาน 2 คน ผู้ปฏิบัติงานคนแรกทำงานที่ 1 และผู้ปฏิบัติงานคนที่สองทำงานที่ 2 ไปพร้อมๆกัน ดังภาพด้านล่าง
การทำงานแบบขนาน (parallel) จะช่วยเพิ่มประสิทธิภาพการทำงานให้เร็วยิ่งขึ้น