Please enable JavaScript.
Coggle requires JavaScript to display documents.
การจัดการเธรด, 6221608040 นางสาวนงนุช วายลม เลขที่ 48 หมู่ 700 - Coggle…
การจัดการเธรด
เธรด
คือหน่วยการทำงานย่อยที่อยู่ในโพรเซสที่มีการแบ่งปัน
ทรัพยากรต่างๆในโพรเซสนั้นๆ
1 เธรด เรียกว่า Single threadมักพบในรุ่นเก่า
1 โพรเซสมีหลายเธรดเรียกว่า Multithread มักพบในรุ่นปัจจุบัน
เป็นการเรียกใช้หน่วยประมวลผลให้เกิดประโยชน์สูงสุด
ทำให้การทำงานของโปรแกรมง่ายมีประสิทธิภาพและมีประโยชน์
ต่อระบบที่มีหลายหน่วยประมวลผล
-
-
ตัวอย่าง
การใช้เธรด
โปรแกรมเว็บบราวเซอร์มีเธรดหนึ่งในการแสดงรูปภาพหรือเขียนข้อความในขณะที่อีกเธรดหนึ่งกำลังดึงข้อมูลจากเน็ตเวิร์ค
หรือโปรแกรมเวิร์ดโพรเซสเซอร์ที่มีอยู่หลายเธรด โดยที่เธรดหนึ่ง
กำลังแสดงภาพกราฟฟิก เธรดที่สองกำลังรอรับคำสั่งจาคีย์บอร์ด
จากผู้ใช้ในขณะที่เธรดที่สามกำลังตรวจสอบคำสะกดและ
ไวยากรณ์ในลักษณะทำงานอยู่เบื้องหลัง
-
-
-
รูปแบบของเธรด
รูปแบบ One-to-One
แต่ละเธรดสำหรับผู้ใช้จะจับคู๋กับเธรดสำหรับระบบปฏิบัติการใน
ลักษณะ 1 ต่อ 1 จะทำงานพร้อมกันดีกว่าแบบ Many-to-One ซึ่ง
การสร้างเธรดสำหรับผู้ใช้จำเป็นต้องสร้างเธรดสำหรับระบบปฏิบัติการ
ที่สัมพันธ์กัน
รูปแบบ Many-to-Many
ยอมให้ผู้พัฒนาสร้างเธรดสำหรับผู้ใช้ได้ตามที่ต้องการ แต่จะไม่สามารถทำงาน
ได้พร้อมกัน
ผู้พัฒนาสามารถสร้างเธรดสำหรับผู้ใช้เท่าที่จำเป็น และสัมพันธ์กับเธรดสำหรับ
ระบบปฏิบัติการที่สามารถรันแบบขนานในระบบมัลติโพรเซสเซอร์
รูปแบบ Many-to-One
เป็นรูปแบบที่ใช้เธรดสำหรับระบบปฏิบัติการ 1 หน่วย กับเธรด
สำหรับผู้ใช้หลายหน่วย โดยจะมีเพียงเธรดเดียวเท่านั้นที่เข้าถึง
Kernel ในเวลาหนึ่งๆ
-
การยกเลิกเธรด
เป็นการทำให้เธรดจบการทำงานก่อนที่จะเสร็จสมบูรณ์ เธรดที่ถูกยกเลิกอาจเรียกว่า Target thread ซึ่งการยกเลิกอาจมี 2 รูปแบบที่ต่างกันคือ
ความยุ่งยากในการยกเลิกจะเกิดในภาวะที่ทรัพยากรถูกกำหนดให้ยกเลิกเธรด
หรือมีเธรดหนึ่งถูกยกเลิกในขณะอยู่ระหว่างการบันทึกข้อมูลที่ใช้ทรัพยากร
ร่วมกันอยู่กับเธรดอื่น กรณีพิเศษของการยกเลิกแบบAsynchronous ระบบ
ปฏิบัติการมักจะแก้ปัญหาทรัพยากรจากการยกเลิกเธรดแต่ไม่ใช่ทุกทรัพยากร
คลังข้อมูล
การจัดการเธรด
-
เธรดของ
ระบบ Win32
วีธีการจะคล้าย ๆ Pthreads โดยเธรดที่สร้างขึ้นในระบบ Win32
จะใช้ฟังก์ชัน CreateThread( ) ช่วงที่เธรดลูกสร้าง เธรดพ่อจะรอ
มันทำงานจนสิ้นสุดการทำงาน ก่อนที่จะแสดงค่าผลลัพธ์ออกมา
ซึ่งค่านั้นจะถูกกำหนดโดยเธรดลูก
เธรดของระบบภาษาจาวา
ทุกโปรแกรมจาวาประกอบไปด้วยเธรดเดี่ยวขนาดเล็กทำการ
ควบคุมอยู่ เธรดพ่อเริ่มการทำงานในเมธอด main( ) เธรดลูก
จะเริ่มทำการประมวลผลในเมธอด run( )
Pthreads
เป็นตัวพื้นฐานของ POSIX เป็น API สำหรับการสร้างเธรดและ
สิ่งที่เกิดขึ้นในเวลาเดียวกัน เป็นตัวบ่งบอกถึงพฤติกรรมของเธรด
โดยไม่ใช้เครื่องมือ
เธรดสองเส้นสามารถใช้ข้อมูลร่วมกันได้ทั้งหมด ทุกโปรแกรม
Pthreads นั้นจะถูกรวบรวมไว้ในส่วนของเฮดเดอร์ไฟล
-