多线程在python中应用比较广泛,但是因为python中有GIL锁的缘故,在多线程中看起来是并发的执行的,在宏观上是并发执行的,但是在微观上是一个接着一个执行。
在python中使用多线程比较简单,是一套固定的模版。
from queue import Queue
from threading import Thread
def task():
while not task_queue.empty():
# 获取任务
task = task_queue.get()
# 爬虫代码
if __name__ == '__main__':
task_queue = Queue()
# 构建任务队列
thread_list = []
for i in range(32):
t = Thread(target=task)
thread_list.append(t)
for t in thread_list:
t.start()
for t in thresd_list:
t.join()