เพื่อให้ทุกคนเข้าใจตรงกัน เรามาเริ่มจากคำนิยามกันก่อน:

Concurrency คือการที่โค้ดตั้งแต่สองส่วนขึ้นไปทำงานในลักษณะที่ "เหมือนจะ" พร้อมกัน (act as if) ส่วน Parallelism คือการที่โค้ดเหล่านั้นทำงานพร้อมกันจริง ๆ

การจะทำให้เกิด Concurrency ได้นั้น คุณต้องรันโค้ดใน Environment ที่สามารถสลับการทำงาน (Switch execution) ไปมาระหว่างส่วนต่าง ๆ ของโค้ดได้ในระหว่างที่มันกำลังรันอยู่ ซึ่งปกติแล้วมักจะถูก Implement โดยใช้ Fibers, Threads และ Processes

สำหรับการจะทำให้เกิด Parallelism ได้นั้น คุณต้องมี Hardware ที่สามารถทำงานสองอย่างพร้อมกันได้จริง ๆ ซึ่งอาจจะเป็น Core หลาย ๆ ตัวใน CPU, มีหลาย CPU ในคอมพิวเตอร์ หรือแม้กระทั่งนำคอมพิวเตอร์หลายเครื่องมาเชื่อมต่อเข้าด้วยกัน