zoukankan      html  css  js  c++  java
  • 多线程一例

    from concurrent.futures import ThreadPoolExecutor  # 导入线程池
    from threading import current_thread  # 从线程中导入查看当前线程的方法
    import time,random
    
    pool = ThreadPoolExecutor(2)
    
    
    def task(i):
        a = random.randint(0,5)
        time.sleep(a)
        print("2222working...")
        return i ** i
    objs = []
    for i in range(1,10):
        res_obj = pool.submit(task,i) # 异步方式提交任务,会返回一个对象用于表示任务结果,即pool.submit()会生成对象
        objs.append(res_obj)
    
    # pool.shutdown(wait=True)  # shutdown是一个阻塞函数,
    # 指的是不能再往进程池内提交任务,wait=True等待进程池或线程池内所有的任务都运行完毕,
    # 才允许代码往下继续执行。
    
    # 从结果对象中取出执行结果
    for res_obj in objs:  # 从列表中拿出对象
        print(res_obj.result()) # 由submit得到的对象会有result()方法,即对象内封装的返回值
    print(len(objs))
    print("over")
    

      

  • 相关阅读:
    matlab cell
    matlab linux 快捷键设置——有问题还是要解决
    latex 小结
    TOJ 1258 Very Simple Counting
    TOJ 2888 Pearls
    HDU 1248 寒冰王座
    TOJ 3486 Divisibility
    TOJ 3635 过山车
    TOJ 1840 Jack Straws
    HDU 4460 Friend Chains
  • 原文地址:https://www.cnblogs.com/realadmin/p/12071065.html
Copyright © 2011-2022 走看看