Please enable JavaScript.
Coggle requires JavaScript to display documents.
desktop-computer บทที่ 4 การจัดการเธรด, 6221601291 สิรภัทร สุขยิ่ง…
บทที่ 4
การจัดการเธรด
เธรด
คือ หน่วยการทำงานย่อยที่อยู่ในโพรเซสที่มีการเเบ่งทรัพยากรต่างๆ ในโพรเซสนั้นๆ
เธรดทำให้การทำงานของโปรแกรมง่าย มีประสิทธิภาพและมีประโยชน์ต่อระบบที่มีหลายหน่วยประมวลผลหรือมีแกนประมวลผลหลายแกน
เป็นหน่วยพื้นฐานของการจัดสรรการใช้ประโยชน์ของ CPU
ประกอบด้วย
Threads ID
Counter
Register
Stack
ตัวอย่างการใช้เธรด
ซอฟต์แวร์ปัจจุบันที่รันกับเครื่อง PC สมัยใหม่มีการออกแบบให้เป็น Multithread
รูปแบบของเธรด
Many - to - One
One - to - One
Many - to - Many
ความแตกต่างระหว่างโพสเซสกับเทรด
เธรด ในความหมายทั่วไป หมายถึง โพรเซสที่ใช้ทรัพยากรอย่างพอเพียง
เธรดเป็นโครงสร้างที่อยู่ในโพรเซส
สถานะของเธรด
Spawn
การที่โพรเซสสร้างโพรเซสใหม่ขึ้นมาอีกตัวหนึ่ง
Block
เกิดขึ้นเมื่อเธรดต้องรอให้เหตุการณ์ใดๆเกิดขึ้น
Unblock
เมื่อเกิดเหตุการณ์ที่เธรดถูกบล็อก เธรดก็จะถูกนำไปเก็บไว้ใน Ready queue
Finish
เมื่อสิ้นสุดการทำงานค่าต่างๆก็จะถูกคืนให้กับระบบภาพเเสดงตัวอย่างของเธรดในระบบ Multithreading
เธรดในระบบปฏิบัติการวินโดว์
สถานะการทำงานของ Windows Thread
Ready
เธรดถูกเลือกให้เข้าทำงาน
Standby
เธรดได้รับการบริการจาก CPU ในอันดับถัดไปเมื่อ CPU ว่าง
Running
เธรดกำลังทำงานใน CPU
Waiting
เธรดถูกบล็อก
รอให้ทำงานบางอย่างให้เสร็จ
ระบบบังคับให้เธรดหยุดตัวเอง
Transition
เธรดพร้อมที่จะเข้าสู่สถานะ Running แต่ทรัพยากรที่ต้องการยังไม่มี
Terminated
เธรดสามารถยุติการทำงานของตัวเอง หรือจากเธรดอื่น เมื่อ Parent Process หยุดทำงาน
ข้อได้เปรียบของ Multithread
การตอบสนอง
การใช้ทรัพยากรร่วมกัน
ประหยัด
รองรับการขยายระบบ
เธรดสำหรับผู้ใช้และเธรด
สำหรับระบบปฏิบัติการ
เธรดสำหรับผู้ใช้
จะได้รับการสนับสนุนจาก Kernel
เธรดสำหรับระบบปฏิบัติการ
ได้รับการสนับสนุนโดยตรงจากระบบปฏิบัติการ
คลังข้อมูลการจัดการเธรด
Pthreads
เป็นตัวพื้นฐานของ POSIX เรียกได้ว่าเป็น API สำหรับการสร้างเธรดและสิ่งที่เกิดขึ้นในเวลาเดียวกัน
Win32
วิธีการจะคล้ายๆ Pthreads ในระบบอื่นๆ
Java Thread
เธรดเป็นรูปแบบแรกในการประมวลผลโปรแกรมในภาษาจาวา ทุกโปรแกรมจาวาจะประกอบไปด้วยเธรดเดียวขนาดเล็กทำการควบคุมอยู่
การยกเลิกเธรด
เป็นการทำให้เธรดจบการทำงานก่อนที่จะเสร็จสมบูรณ์
เธรดที่ถูกยกเลิกอาจเรียกว่า Target Thread
การยกเลิกแบบ Asynchronous อาจใช้ทรัพยากรทั่วไปไม่ได้
การยกเลิกแบบ Deferred จะทำงานโดยมีเธรดหนึ่งกำหนดว่า Targer Thread ใดจะถูกยกเลิก
6221601291 สิรภัทร สุขยิ่ง เลขที่ 22