ปิด Python Threading เมื่อประมวลผลเสร็จ

Supphachoke Suntiwichaya
1 min readFeb 29, 2020

--

บันทึกความจำแบบลูกทุ่งๆ เรื่องการจบโปรแกรมที่ใช้ Threading ของ Python ที่เปิด worker แบบ Infinite loop เอาไว้ [[มี update ด้านล่าง]]

ตัวอย่าง

ตัวอย่างนี้เมื่อ run จะค้างไม่ปิดให้

จากตัวอย่างข้างบนเมื่อข้อมูลหยุดส่งให้ Queue แล้วโปรแกรมยังค้างอยู่ให้เพิ่มหนึ่งบรรทัดดังนี้ (line 36)

self.q.put('END')
ตัวอย่างนี้เมื่อหยุดส่งข้อมูลให้โปรแกรมก็จะหยุดทำงาน

วิธีนี้น่าจะลูกทุ่งไปหน่อยใครมีวิธีที่เฉียบและง่ายๆ แนะนำมานะครับมึนหมดละ

Update

หลังจากที่ Published บนความไปมีเพื่อนใน FaceBook แนะนำวิธีที่ง่ายกว่ามาให้ตามตัวอย่างด้านล่าง

การใช้ ThreadPoolExecutor มาทำงานแทนสั้นกระชับและง่าย

--

--

No responses yet