码迷,mamicode.com
首页 > 编程语言 > 详细

多线程一例

时间:2019-12-20 00:50:17      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:adp   生成   and   允许   class   range   shutdown   方法   print   

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")

  

多线程一例

标签:adp   生成   and   允许   class   range   shutdown   方法   print   

原文地址:https://www.cnblogs.com/realadmin/p/12071065.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!