Thread (CPU)
Thread คืออะไร
Thread ในบริบทของ CPU (Central Processing Unit) คือลำดับคำสั่งที่เล็กที่สุดที่หน่วยประมวลผลสามารถดำเนินการได้ เป็นเส้นทางการทำงานเดี่ยว ๆ ภายในโปรแกรม หรือกล่าวอีกนัยหนึ่งคือเป็น ช่องทางการประมวลผลเสมือน (Logical Core) ที่ระบบปฏิบัติการมองเห็นและสามารถมอบหมายงานให้ได้ ทำให้ CPU ที่มีเทคโนโลยี Multi-threading (เช่น Hyper-Threading ของ Intel หรือ SMT ของ AMD) สามารถจัดการงานหลายอย่างได้พร้อมกันในแต่ละคอร์
(Thread ที่หมายถึงงานย่อยของซอฟต์แวร์ ให้ดูที่นี่ Execution Thread)
หน้าที่สำคัญ:
- เพิ่มประสิทธิภาพการทำงานแบบขนาน (Concurrency): เทคโนโลยี Multi-threading ช่วยให้แต่ละ Physical Core (คอร์จริง) สามารถสลับไปมาหรือประมวลผลเธรดที่แตกต่างกันได้เกือบจะพร้อมกัน ทำให้ใช้ทรัพยากรของคอร์นั้นๆ ได้อย่างเต็มประสิทธิภาพมากขึ้น
- ปรับปรุงการตอบสนองของระบบ (System Responsiveness): เมื่อโปรแกรมหรือระบบปฏิบัติการมีหลายเธรด CPU สามารถประมวลผลงานได้หลากหลายพร้อมกัน ทำให้ระบบโดยรวมรู้สึกตอบสนองได้เร็วขึ้น แม้จะเปิดหลายโปรแกรมหรือทำงานหนัก
- รองรับ Multi-tasking ได้ดีขึ้น: การมีจำนวนเธรดที่มากกว่าจำนวน Physical Core ช่วยให้ CPU สามารถสลับไปทำงานระหว่างโปรแกรมต่างๆ ได้อย่างราบรื่นขึ้น โดยเฉพาะเมื่อมีโปรแกรมจำนวนมากที่ทำงานอยู่เบื้องหลัง
เกร็ดน่ารู้:
- Physical Cores vs. Logical Threads:
- Physical Core (คอร์จริง): คือหน่วยประมวลผลหลักที่เป็นฮาร์ดแวร์จริงๆ ภายใน CPU แต่ละคอร์มีหน่วยคำนวณของตัวเอง
- Logical Thread (เธรดตรรกะ/เสมือน): คือสิ่งที่ระบบปฏิบัติการมองเห็นเป็นช่องทางการประมวลผล เธรดไม่ใช่คอร์จริง แต่เป็นเทคนิคที่ทำให้คอร์จริงหนึ่งคอร์สามารถจัดการคิวคำสั่งได้สองชุดข้อมูลเกือบจะพร้อมกัน โดยใช้ทรัพยากรของคอร์นั้นๆ ให้เกิดประโยชน์สูงสุด ตัวอย่างเช่น CPU 4 คอร์ 8 เธรด หมายถึงมี 4 Physical Cores และแต่ละคอร์สร้าง 2 Logical Threads
- เทคโนโลยี Multi-threading:
- Hyper-Threading (HT): เป็นเทคโนโลยีของ Intel ที่ทำให้แต่ละ Physical Core สามารถประมวลผลได้ 2 Logical Threads
- Simultaneous Multi-Threading (SMT): เป็นเทคโนโลยีของ AMD ที่มีหลักการทำงานคล้ายคลึงกับ Hyper-Threading
- การใช้งานเธรด: จำนวนเธรดที่เหมาะสมขึ้นอยู่กับลักษณะการใช้งานและชนิดของโปรแกรม
- โปรแกรมที่รองรับ Multi-threading (Multi-threaded applications): โปรแกรมเหล่านี้ถูกออกแบบมาให้สามารถแบ่งงานออกเป็นหลายๆ เธรด เพื่อให้สามารถใช้ประโยชน์จาก CPU ที่มีหลายคอร์และหลายเธรดได้อย่างเต็มที่ ตัวอย่างเช่น โปรแกรมตัดต่อวิดีโอ, ซอฟต์แวร์เรนเดอร์ 3D, หรือเกมที่ทันสมัยบางเกม
- โปรแกรมที่รองรับ Single-threading (Single-threaded applications): โปรแกรมเหล่านี้จะใช้เพียงเธรดเดียวในการทำงาน แม้ CPU จะมีหลายคอร์หลายเธรดก็ตาม สำหรับโปรแกรมประเภทนี้ ความเร็วสัญญาณนาฬิกา (Clock Speed) ของแต่ละคอร์จะมีความสำคัญมากกว่าจำนวนเธรด
- การตรวจสอบจำนวนเธรด: คุณสามารถดูจำนวนคอร์และเธรดของ CPU ได้จาก Task Manager (สำหรับ Windows) หรือ System Monitor (สำหรับ Linux) หรือซอฟต์แวร์ตรวจฮาร์ดแวร์ต่างๆ
คำศัพท์ที่เกี่ยวข้อง:
- CPU (Central Processing Unit): หน่วยประมวลผลกลาง
- Core (คอร์): หน่วยประมวลผลหลักภายใน CPU
- Clock Speed (ความเร็วสัญญาณนาฬิกา): ความเร็วในการประมวลผลของ CPU
- Multitasking: การทำงานหลายอย่างพร้อมกัน
- Parallel Processing: การประมวลผลแบบขนาน
- Hyper-Threading (HT): เทคโนโลยี Multi-threading ของ Intel
- Simultaneous Multi-Threading (SMT): เทคโนโลยี Multi-threading ของ AMD
อุปกรณ์ที่เกี่ยวข้อง:
- CPU (หน่วยประมวลผลกลาง): มีจำนวนคอร์และเธรดที่แตกต่างกันไปในแต่ละรุ่น
- ระบบปฏิบัติการ (Operating System): ทำหน้าที่จัดสรรงานให้กับเธรดต่างๆ ของ CPU
- ซอฟต์แวร์ (Software): ต้องได้รับการออกแบบมาเพื่อใช้ประโยชน์จาก Multi-threading เพื่อประสิทธิภาพสูงสุด