zoukankan      html  css  js  c++  java
  • python习题:【多线程】有100个数据,启动5个线程,每个线程分20个数据,怎么把这20个数据分别传给每个线程。

    # 有100个数据,启动5个线程,每个线程分20个数据,怎么把这20个数据分别传给每个线程。
    # 每次传下标是【0:20】【20:40】【40:60】【60:80】【80:100】

    import threading

    def say(lis):
    for i in lis:
    print(i)

    res = list(range(10))

    for i in range(5):
    threading.Thread(target=say,args=(res[i*20:(i+1)*20],))


    用线程池实现
    # 线程池:放线程的池子
    import threadpool

    def say(num):
    print(num)

    res = list(range(100))
    pool = threadpool.ThreadPool(20) #定义线程池的大小

    reqs=threadpool.makeRequests(say,res) #生成线程要执行的所有线程,第一个参数是函数,第二个参数是数据,这样就可以算出来每个线程分几个数据

    # for req in reqs:
    # pool.putRequest(req) # 实际才去执行的
    [pool.putRequest(req) for req in reqs] # 实际才去执行的

    pool.wait()#等待 其他线程执行结束
  • 相关阅读:
    建表关系
    设计模式-策略模式
    设计模式-适配器模式
    在线操作word和在线预览查找的资料记录
    Elasticsearch 使用-安装
    12-factors
    Kafka 使用-安装
    Apache Zookeeper 使用-安装
    Java 使用-安装
    设计模式-模板方法模式
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8543217.html
Copyright © 2011-2022 走看看