เธรด(Thread)

เธรดคืออะไร

      หน่วยการทำงานของโปรเซส ซึ่งเธรดต้องรันอยู่ในโปรเซสอีกที่หนึ่ง เป็นLightweight process(LWP) ส่วนโปรเซสเป็น Heavyweight process(HWP) เธรดหนึ่งจะต้องประกอบไปด้วยโปรเซสอย่างน้อย 1 ตัวแต่อาจมีมากกว่า เธรดในโปรเซสหนึ่งๆได้ ซึ่งเธรดต่างๆอยู่ภายใต้โปสเซสจะแบ่งกันใช้ทรัพยากรของโปรเซสรวมกันกับเธรดอื่น
      การประมวลผงเธรดแต่ละตัวทำขนาดกันไป คือ กำลังประมวลผลเธรด1 อยู่ก็สามารถประมวลผลเธรดอื่นไปพร้อมกันได้ โดยแต่ละเธรดทำงานในลักษณะเป็นอิสระต่อกัน ไม่เกี่ยวข้องกัน เรียกว่าMultihreading
-Bornคือ สถานะเริ่มต้นของเธรดทุกตัว
-ready(Runnable)เมื่อโปรแกรมสั่งสตารทเธรดให้เริ่มต้นทำงานเธรดจะเปลี่ยนสถานะจาก born เป็น ready เมื่อเธรดพร้อมประมวลผล และ รอคอยการประมวลผลของโปรเซสเซอร์
-Running สถานะเธรดที่ได้รับการประมวลผลจากโปรเซสเซอร์ โดยเธรดที่อยู่ในสถานะreddy และมีความสำคัญมากที่สุดจะได้รับการประมวลผลก่อน
-Deadกรณีที่เธรดได้รับการประมลผลเสร็จสมบูรณ์ กรณีที่เธรดถูกสั่งให้สิ้นสุดการทำงาน เธรดจะถูกเปลี่ยนสถานะจากRunning มาเป็นDeadโดยเมื่อเธรดอยู่สถานะ Dead แล้วทรัพยากรณ์ที่ครองอยู่จะถูกคืนระบบ และเธรดนั้นจะถูกกำจัดออกไปจากระบบ
-Blocked เมื่อเธรดรอคอยการทำงานจากI/Oเช่น การรออ่านข้มูลจากฮาร์ดิสก์ เธรดจะถูกเปลี่ยนสถานะจาก Running มาเป็น Blockedซึ่งเธรดจะยังคงในสถานะนี้จนกว่าการร้องขอการทำงานจากi/oจะเสร็จสมบูรณ์

0 ความคิดเห็น: แสดงความคิดเห็น