class ThreadUrl(threading.Thread):
def __init__(self, main_queue, source1_queue, source2_queue, source3_queue, source4_queue):
threading.Thread.__init__(self)
self.main_queue = main_queue
self.source1_queue = source1_queue
self.source2_queue = source2_queue
self.source3_queue = source3_queue
self.source4_queue = source4_queue
def run(self):
while True:
# 从任务队列里取出任务
sql_dict = self.main_queue.get()
sql = sql_dict.get('a')
if sql is not None:
self.source1_queue.put(sql)
self.main_queue.task_done()
else:
sql = sql_dict.get('b')
if sql is not None:
self.source2_queue.put(sql)
self.main_queue.task_done()
else:
sql = sql_dict.get('c')
if sql is not None:
self.source3_queue.put(sql)
self.main_queue.task_done()
else:
sql = sql_dict.get('d')
if sql is not None:
self.source4_queue.put(sql)
self.main_queue.task_done()
类似这种形式。
Impaknya tidak besar, struktur yang jelas selalunya lebih penting daripada prestasi kecil itu. Jika anda ingin mengoptimumkan, anda boleh menggunakan alat pihak ketiga (Pypy, dsb.).
Terutama kerana ia hodoh, kod yang tidak elegan.
yang lain boleh digantikan dengan continue.
Mengenai prestasi, adakah anda pasti mahu menggunakan threading.Thread?
Ia agak bertele-tele, tulis kod biasa dalam cuba dan kendalikan pengecualian sql kecuali
Pertimbangkan kebolehbacaan dan kebolehselenggaraan dahulu
Anggap prestasi terakhir