Rumah > Soal Jawab > teks badan
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()
类似这种形式。
迷茫2017-04-18 09:51:41
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.).
黄舟2017-04-18 09:51:41
Terutama kerana ia hodoh, kod yang tidak elegan.
yang lain boleh digantikan dengan continue.
Mengenai prestasi, adakah anda pasti mahu menggunakan threading.Thread?
阿神2017-04-18 09:51:41
Ia agak bertele-tele, tulis kod biasa dalam cuba dan kendalikan pengecualian sql kecuali
黄舟2017-04-18 09:51:41
Pertimbangkan kebolehbacaan dan kebolehselenggaraan dahulu
Anggap prestasi terakhir