Python线程池编程和参数的传递

from time import sleep

import threadpool

def eat(a,b,c):
    print("%s%s%s"%(a,b,c))
    sleep(2)

"""
线程中的传参形式
[(args,kwargs),(args,kwargs)]

"""

if __name__ == '__main__':

    #线程1
    # value1 = (1,2,3)
    # 线程2
    # value2 = (4,5,6)
    # #线程3
    # value3 = (7,8,9)
    value1 = {"c":"坚果","b":"haha","a":"hehe"}
    value2 = {"c":"葡萄","b":"xixi","a":"xixi"}
    value3 = {"c":"苹果","b":"hhee","a":"xixi"}

    #创建一个线程池
    #参数用来设置线程池中可以同时运行线程的数量
    thPool = threadpool.ThreadPool(2)

    # argslist = ["haha","hehe","xixi","yaya","安倍狗"]

    #args形式给线程传参的(args,kwargs),因为没有kwargs形式的参数,所以
    #第二个为None
    # argslist = [(value1,None),(value2,None),(value3,None)]

    #kwargs形式给线程传参
    #因为没有args形式的参数,所以第一个为None
    argslist = [(None, value1), (None,value2), (None,value3)]
    #把每个线程当作一个请求,makesRequests将每个线程创建成一个请求
    threadRequests = threadpool.makeRequests(eat,argslist)

    #将线程池中的每个线程请求放到线程池中
    for request in threadRequests:
        thPool.putRequest(request)
    #开启,启动线程池
    #wait会等待所有的子线程执行完后再执行wait()后面的代码
    thPool.wait()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值