ฉันเริ่มมองหาการสร้างเธรดใน Python ฉันค้นหาตามทฤษฎีก่อนเพื่อทำความเข้าใจว่า Threads ทำงานอย่างไรใน Python ฉันยังได้อ่านเกี่ยวกับการใช้ Queue ใน Python และวิธีที่สามารถช่วยแก้ไขปัญหา Threading เล็กน้อยได้ ฉันสามารถเข้าใจรหัสแยกกันสำหรับแต่ละรายการได้ จากนั้นฉันก็เจอบทช่วยสอนต่อไปนี้:
http://www.ibm.com/developerworks/aix/library/au-threadingpython/
โดยแสดงความเกี่ยวข้องของ Thread และ Queue ใน Python และวิธีที่สามารถเร่งกระบวนการดำเนินการภายใต้สถานการณ์บางอย่างได้
ฉันมีปัญหาในการทำความเข้าใจโค้ดบางส่วน
def main():
#spawn a pool of threads, and pass them queue instance
for i in range(5):
t = ThreadUrl(queue)
t.setDaemon(True)
t.start()
#populate queue with data
for host in hosts:
queue.put(host)
#wait on the queue until everything has been processed
queue.join()
main()
print "Elapsed Time: %s" % (time.time() - start)
ใน for loop แรก จะมีการสร้างเธรดหลายรายการและส่งอินสแตนซ์คิวไปให้เธรดนั้น แต่จากความเข้าใจของผมตอนนี้คิวยังว่างอยู่
ใน for loop ถัดไป
for host in hosts
:
ค่าโฮสต์จะถูกผลักเข้าไปในคิว ตอนนี้ข้อมูลคิวนี้ถูกกำหนดให้กับเธรดอย่างไร
สุดท้ายนี้ การใช้ queue.join()
ที่เกี่ยวข้องกับโปรแกรมนี้คืออะไร