Threading线程池
代码
# *_*coding:utf-8
import threading
import time
import random
# 定义每次执行的线程数
max_connection = 5
pool_sema = threading.BoundedSemaphore(max_connection)
def demo(page):
# 加锁,限制线程数
pool_sema.acquire()
print("start-当前爬取第%s页" % page)
time.sleep(random.randint(1, 3))
print("end-当前爬取第%s页" % page)
# 释放锁
pool_sema.release()
t1 = ""
for i in range(1, 11):
# target=demo 要执行的函数
# args=(1,) 如果函数需要传递参数,就加上这个args参数,否则去掉这个参数
# 元祖的方式传递参数,参数后面需要有逗号
t1 = threading.Thread(target=demo, args=(i,))
# 启动线程
t1.start()
# 等待所有线程都执行完
t1.join()
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:Threading线程池
本文作者:伟生
发布时间:2022-10-16, 14:50:00
最后更新:2022-10-16, 21:44:54
原始链接:http://yoursite.com/2022/10/16/basic_13_threading/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。