คุณควรใช้หนึ่งเธรดสำหรับ:
โปรเซสเซอร์แต่ละตัวที่คุณต้องยุ่งอยู่เสมอ
I / O แต่ละรายการคุณสามารถใช้งานพร้อมกันได้อย่างเป็นประโยชน์โดยที่คุณไม่สามารถดำเนินการในแบบที่ไม่มีการบล็อกได้ (ตัวอย่างเช่นอ่านจากดิสก์ภายในเครื่อง)
แต่ละงานที่ต้องใช้เธรดเฉพาะเช่นการโทรเข้าไปในไลบรารีที่ไม่มีส่วนต่อประสานที่ไม่ปิดกั้นหรือส่วนต่อประสานที่ไม่ได้ปิดกั้นไม่เหมาะสม ซึ่งรวมถึงงานต่าง ๆ เช่นการตรวจสอบนาฬิการะบบตัวจับเวลาการยิงและอื่น ๆ
เพิ่มอีกเล็กน้อยเพื่อป้องกันการบล็อกที่ไม่คาดคิดเช่นข้อบกพร่องของหน้า
เพิ่มอีกเล็กน้อยเพื่อป้องกันการบล็อกที่คาดไว้ซึ่งไม่คุ้มค่ากับการปรับให้เหมาะสมตัวอย่างเช่นในโค้ดที่ไม่สำคัญ (ตัวอย่างเช่นถ้าคุณอาจไม่ค่อยต้องการทำ DNS คำขอมันอาจไม่คุ้มค่าที่จะทำคำร้องขอ DNS แบบอะซิงโครนัสเพียงแค่สร้างหัวข้อเพิ่มเติมสองสามข้อและทำให้ชีวิตของคุณง่ายขึ้น)
หากคุณปฏิบัติตามกฎ "หนึ่งเธรดต่อตัวประมวลผล" รหัสของคุณทั้งหมดนั้นมีความสำคัญอย่างยิ่งต่อประสิทธิภาพ รหัสใด ๆ ที่บล็อกด้วยเหตุผลบางอย่างหมายความว่ากระบวนการของคุณไม่สามารถใช้โปรเซสเซอร์นั้นได้ ทำให้การเขียนโปรแกรมยากขึ้นมากโดยไม่มีเหตุผลที่ดี