แก้ไขแล้ว: เธรดหลาม

การปรับปรุงครั้งล่าสุด: 09/11/2023
ผู้แต่ง: หลาม SourceTrail

ปัญหาหลักของเธรดคือสามารถสร้างการแย่งชิงทรัพยากรได้มากมาย เช่น เวลาของ CPU และหน่วยความจำ ซึ่งอาจทำให้เกิดปัญหาได้หากสองเธรดพยายามเข้าถึงทรัพยากรเดียวกันในเวลาเดียวกันing_simple.py

#!/usr/bin/python นำเข้าเธรด เวลานำเข้า # กำหนดฟังก์ชันสำหรับเธรด def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadName, time.ctime(time.time()) ) # สร้างสองเธรดดังนี้: thread.start_new_thread( print_time, ("Thread-1", 2, ) ) thread.start_new_thread( print_time, ( "เธรด-2", 4, ) ) ยกเว้น: พิมพ์ "ข้อผิดพลาด: ไม่สามารถเริ่มเธรด" ในขณะที่ 1: ผ่าน[/code] รหัสนี้สร้างสองเธรด เธรดแรกจะเรียกใช้ฟังก์ชัน "print_time" ทุก 2 วินาที และเธรดที่สองจะเรียกใช้ฟังก์ชัน "print_time" ทุก 4 วินาที

เธรดวัตถุ

ใน Python คุณสามารถเธรดวัตถุโดยใช้โมดูลเธรด โมดูลนี้มีฟังก์ชันหลากหลายที่คุณสามารถใช้เพื่อสร้างและจัดการเธรดในโค้ดของคุณ

ในการเริ่มเธรดใหม่ใน Python คุณสามารถใช้ฟังก์ชัน threading.Thread() ฟังก์ชันนี้ใช้เป็นอาร์กิวเมนต์เดียวของวัตถุฟังก์ชันที่คุณต้องการเรียกใช้เป็นเธรด วัตถุฟังก์ชันต้องมีแอตทริบิวต์ __name__ ซึ่งระบุชื่อของเธรดที่ฟังก์ชันนี้จะทำงาน

เมื่อคุณสร้างเธรดโดยใช้ฟังก์ชัน Thread() แล้ว คุณสามารถเริ่มได้โดยเรียกเมธอด Threading.start() วิธีนี้ใช้เป็นอาร์กิวเมนต์สตริงที่ระบุชื่อของไฟล์โปรแกรมที่เธรดใหม่ควรเริ่มดำเนินการ

คุณยังสามารถใช้เมธอด Threading.join() เพื่อยุติเธรดที่กำลังทำงานอยู่และคืนการควบคุมกลับไปยังลูปโปรแกรมหลักของคุณ วิธีนี้ใช้เป็นอาร์กิวเมนต์สตริงที่ระบุชื่อของไฟล์โปรแกรมที่เธรดใหม่ควรยุติการดำเนินการ

หัวข้อภูต

เธรด Daemon เป็นเธรดที่ทำงานในพื้นหลังของโปรแกรม ใช้เพื่อจัดการงานหรือบริการที่ใช้เวลานานโดยไม่รบกวนการดำเนินการตามปกติ

กระทู้ที่เกี่ยวข้อง: