Threading线程池

  1. 代码

代码

# *_*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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏