ฉันกำลังเขียนแอปพลิเคชัน GUI ที่ดึงข้อมูลผ่านการเชื่อมต่อเว็บเป็นประจำ เนื่องจากการดึงข้อมูลนี้ใช้เวลาสักครู่จึงทำให้ UI ไม่ตอบสนองในระหว่างกระบวนการดึงข้อมูล (ไม่สามารถแบ่งออกเป็นส่วนย่อย ๆ ได้) นี่คือเหตุผลที่ฉันต้องการจ้างการเชื่อมต่อเว็บไปยังเธรดผู้ปฏิบัติงานแยกต่างหาก
[ใช่ฉันรู้แล้วตอนนี้ฉันมีปัญหาสองอย่าง]
อย่างไรก็ตามแอปพลิเคชันใช้ PyQt4 ดังนั้นฉันต้องการทราบว่าทางเลือกที่ดีกว่าคืออะไร: ใช้เธรดของ Qt หรือใช้threading
โมดูลPython ? ข้อดี / ข้อเสียของแต่ละข้อคืออะไร? หรือคุณมีข้อเสนอแนะที่แตกต่างไปจากเดิมอย่างสิ้นเชิง?
แก้ไข (รางวัลใหม่):ในขณะที่วิธีแก้ปัญหาในกรณีเฉพาะของฉันอาจจะใช้คำขอเครือข่ายที่ไม่ปิดกั้นเช่นที่Jeff OberและLukáš Lalinsk (แนะนำ (โดยทั่วไปแล้วจะทิ้งปัญหาการทำงานพร้อมกันไปยังการใช้งานเครือข่าย) แต่ฉันก็ยังต้องการมากกว่านี้ คำตอบเชิงลึกสำหรับคำถามทั่วไป:
ข้อดีและข้อเสียของการใช้เธรด PyQt4 (เช่น Qt) บนเธรด Python ดั้งเดิม (จากthreading
โมดูล) คืออะไร?
แก้ไข 2:ขอบคุณทุกคำตอบ แม้ว่าจะไม่มีข้อตกลง 100% แต่ดูเหมือนว่าจะมีความเห็นเป็นเอกฉันท์อย่างกว้างขวางว่าคำตอบคือ "ใช้ Qt" เนื่องจากข้อดีของสิ่งนั้นคือการรวมเข้ากับส่วนที่เหลือของห้องสมุดในขณะที่ไม่มีข้อเสียที่แท้จริง
สำหรับใครก็ตามที่ต้องการเลือกระหว่างการใช้งานเธรดสองแบบฉันขอแนะนำให้พวกเขาอ่านคำตอบทั้งหมดที่ให้ไว้ที่นี่รวมถึงเธรดรายชื่อเมลของ PyQt ที่เจ้าอาวาสลิงก์ไปด้วย
มีหลายคำตอบที่ฉันพิจารณาสำหรับค่าหัว; ในที่สุดฉันก็เลือกเจ้าอาวาสสำหรับการอ้างอิงภายนอกที่เกี่ยวข้องมาก อย่างไรก็ตามเป็นการโทรที่ใกล้ชิด
ขอบคุณอีกครั้ง.