Concurrency กับ Parallelism ต่างกันยังไง

Nook Supakorn
Aug 26, 2017 · 1 min read

สวัสดีคร้าบบบ วันนี้ได้มีโอกาสนั่งอ่านหนังสือ Elixir in Action ซึ่งเป็นหนังสือที่พูดถึง การเขียนโปรแกรมด้วยภาษา Elixir แล้วก็ไปเจอหัวข้อนึงเค้าพูดถึงเรื่องของ Concurrency กับ Parallelism ก็เลยสงสัยว่ามันแตกต่างกันยังไงวะสองตัวนี้ ก็เลยไปค้น ๆ หาข้อมูลในเว็บดูก็พบว่ามีคนถามเหมือนกัน

What is the difference between concurrency and parallelism?”

คำตอบที่ผมเจอเนี่ยเป็นของคุณ Vicky Katara, Software Engineer at Amazon ในเว็ป Quora ซึ่งน่าสนใจทีเดียวเค้าพูดถึงความแตกต่างระหว่าง concurrency กับ parallelism โดยใช้การก่อกำแพงมาช่วยเปรียบเทียบแบบนี้ครับ

คุณ Vicky เนี้ย เขาก็บอกการสร้างกำแพงอิฐเนี้ย
แบบวิธีง่อย ๆ เลย คือสร้างทีละแถวโดยการวางอิฐ ฉาบปูน วางอิฐ รอให้ปูนแห้ง ถึงจะเริ่มฉาบปูนวางอิฐแถวต่อไป เมื่อสร้างแถวแรกเสร็จ ถึงจะเริ่มสร้างแถวที่สอง

ส่วนวิธี Concurrency เนี้ย “จะทำการสร้างกำแพงโดยนำ ก้อนอิฐมาวางเรียงกันทีละก้อน วางฝั่งซ้ายหนึ่งแถว ฉาบปูน ระหว่างที่รอปูนแห้ง ก็ย้ายไปทำฝั่งขวา พอวางอิฐที่ฝั่งขวา ฉาบปูนปุ้ป ระหว่างนั้นปูนฝั่งซ้ายแห้งพอดีก็กลับไปสร้างที่ฝั่งซ้ายต่อ ทำแบบนี้ไปเรื่อย ๆ จนเสร็จ ”

และแบบ Parallelism “คือการจ้างอีกคนมาช่วยกันสร้างกำแพง โดยการสร้างสองฝั่งพร้อมกัน วิธีนี้เป็นวิธีที่ดีที่สุด ประหยัดเวลาได้ตั้งครึ่งหนึ่งแหนะถ้าเทียบกับวิธีง่อย ๆ แต่ ก็ตามนั้น เร็วขึ้น แต่ต้องใช้คนถึงสองคนเลยทีเดียว”

ภาพแสดงการทำงานของทั้งสามวิธี

Ref :
http://www.dietergalea.com/parallelism-concurrency/
https://www.quora.com/What-is-the-difference-between-concurrency-and-parallelism

)

Nook Supakorn

Written by

Hi My name is Nook . I am web developer.

HBOT.io

HBOT.io

Bot Platform

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade