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()
类似这种形式。
임팩트는 크지 않고, 그 작은 성과보다 명확한 구조가 더 중요한 경우가 많습니다. 최적화하려면 타사 도구(Pypy 등)를 사용할 수 있습니다.
주로 보기 흉하고 우아하지 않은 코드이기 때문입니다.
다른 항목은 계속으로 대체될 수 있습니다.
성능 측면에서 threading.Thread를 사용하시겠습니까?
좀 장황합니다. try에서 일반 코드를 작성하고 Except에서 SQL 예외를 처리합니다.
가독성과 유지관리성을 먼저 고려하세요
성능을 마지막에 고려하세요