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()
类似这种形式。
L'impact n'est pas grand, une structure claire est souvent plus importante que cette petite performance. Si vous souhaitez optimiser, vous pouvez utiliser des outils tiers (Pypy, etc.).
Principalement parce que c’est moche, un code tellement inélégant.
else peut être remplacé par continuer.
En ce qui concerne les performances, êtes-vous sûr de vouloir utiliser threading.Thread ?
C'est un peu verbeux, écrivez du code normal dans try et gérez les exceptions SQL dans except
Considérez d'abord la lisibilité et la maintenabilité
Considérez la performance en dernier