ในการประมวลผลหลายขั้นตอนคุณใช้ประโยชน์จาก CPU หลายตัวเพื่อกระจายการคำนวณของคุณ เนื่องจากซีพียูแต่ละตัวทำงานแบบขนานคุณจึงสามารถทำงานหลายอย่างพร้อมกันได้อย่างมีประสิทธิภาพ คุณต้องการใช้การประมวลผลหลายขั้นตอนสำหรับงานที่เชื่อมต่อกับCPU ตัวอย่างจะพยายามคำนวณผลรวมขององค์ประกอบทั้งหมดของรายการขนาดใหญ่ หากเครื่องของคุณมี 8 คอร์คุณสามารถ "ตัด" รายการออกเป็น 8 รายการเล็ก ๆ และคำนวณผลรวมของแต่ละรายการแยกกันบนคอร์ที่แยกจากกันแล้วบวกตัวเลขเหล่านั้นเข้าไป คุณจะได้รับการเร่งความเร็วประมาณ 8 เท่าจากการทำเช่นนั้น
ในเธรด (หลาย)คุณไม่ต้องการซีพียูหลายตัว ลองนึกภาพโปรแกรมที่ส่งคำขอ HTTP จำนวนมากไปยังเว็บ หากคุณใช้โปรแกรมเธรดเดียวโปรแกรมจะหยุดการดำเนินการ (บล็อก) ในแต่ละคำขอรอการตอบกลับจากนั้นดำเนินการต่อเมื่อได้รับการตอบกลับ ปัญหาคือ CPU ของคุณไม่ทำงานจริงๆในขณะที่รอให้เซิร์ฟเวอร์ภายนอกทำงาน ในระหว่างนี้มันสามารถทำงานที่มีประโยชน์ได้จริง! การแก้ไขคือการใช้เธรด - คุณสามารถสร้างได้หลายชุดโดยแต่ละชุดมีหน้าที่ในการขอเนื้อหาบางส่วนจากเว็บ สิ่งที่ดีเกี่ยวกับเธรดคือแม้ว่าจะทำงานบน CPU ตัวเดียว แต่ CPU จะ "หยุด" การทำงานของเธรดหนึ่งเป็นครั้งคราวและข้ามไปดำเนินการกับเธรดอื่น (เรียกว่าการสลับบริบทและจะเกิดขึ้นตลอดเวลาโดยไม่ได้กำหนด ช่วงเวลา) - ใช้เธรด
asyncioเป็นหลักเกลียวที่ไม่ได้เป็น CPU แต่คุณเป็นโปรแกรมเมอร์ (หรือจริงใบสมัครของคุณ) ตัดสินใจที่ไหนและเมื่อไม่เปลี่ยนบริบทเกิดขึ้น ใน Python คุณใช้await
คีย์เวิร์ดเพื่อระงับการทำงานของโครูทีนของคุณ (กำหนดโดยใช้async
คีย์เวิร์ด)