Python 线程池模块之多线程操作代码
发布日期:2022-05-31 14:38 | 文章来源:CSDN
1、线程池模块
引入
from concurrent.futures import ThreadPoolExecutor
2、使用线程池
一个简单的线程池使用案例
from concurrent.futures import ThreadPoolExecutor import time pool = ThreadPoolExecutor(10, 'Python') def fun(): time.sleep(1) print(1, end='') if __name__ == '__main__': # 列表推导式 [pool.submit(fun) for i in range(20) if True]
from concurrent.futures import ThreadPoolExecutor
import time
pool = ThreadPoolExecutor(10, 'Python')
def fun(arg1,arg2):
time.sleep(1)
print(arg1, end=' ')
print(arg2, end=' ')
if __name__ == '__main__':
# 列表推导式
[pool.submit(fun,i,i) for i in range(20) if True]
# 单个线程的执行
task = pool.submit(fun,'Hello','world')
# 判断任务执行状态
print(f'task status {task.done()}')
time.sleep(4)
print(f'task status {task.done()}')
# 获取结果的函数是阻塞的,所以他会等线程结束之后才会输出
print(task.result())
3、获取结果
阻塞等待
print(task.result())
批量获取结果
for future in as_completed(all_task): data = future.result()
阻塞主线程,等待执行结束再执行下一个业务
# 等待线程全部执行完毕
wait(pool.submit(fun,1,2),return_when=ALL_COMPLETED)
print('')
以上就是Python 线程池模块之多线程操作代码的详细内容,更多关于Python 线程池模块的资料请关注本站其它相关文章!
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
相关文章
关注官方微信