博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程池
阅读量:5226 次
发布时间:2019-06-14

本文共 1501 字,大约阅读时间需要 5 分钟。

线程池的概念:

  使用concurrent模块进行并发编程的

先上简单的代码

import timefrom concurrent.futures import ThreadPoolExecutorfrom threading import current_threaddef func(i):    print('thread',i,current_thread())  # 线程ID    time.sleep(1)    print('thread %s end'%i)tp = ThreadPoolExecutor(5) # 开了5个线程for i in range(20):    tp.submit(func,i)tp.shutdown()print('主线程')

返回值

import timefrom concurrent.futures import ThreadPoolExecutorfrom threading import current_threaddef func(i):    print('thread',i,current_thread())  # 线程ID    time.sleep(1)    print('thread %s end'%i)    return i*'*'tp = ThreadPoolExecutor(5) # 实例化线程池,开了5个线程ret_l = []for i in range(20):    ret = tp.submit(func,i)    ret_l.append(ret)for ret in ret_l:    print(ret.result())print('主线程')

回调函数

import osimport timefrom concurrent.futures import ProcessPoolExecutorfrom threading import current_thread as cthread# 线程池的回调函数 子线程完成的def func(i):    print('thread',i,os.getpid())    time.sleep(1)    print('thread %s end'%i)    return i*'*'def call_back(arg):    print('call back:',os.getpid())    print('ret:',arg.result())if __name__ == '__main__':    tp = ProcessPoolExecutor(5)    ret_l = []    for i in range(20):        tp.submit(func,i).add_done_callback(call_back)    print('主线程',os.getpid())
# 回调函数     # 在线程池中 由子线程完成的     # 在进程池中 由主线程完成的 # 线程池     # 实例化线程池 ThreadPoolExecutor   5*cpu_count     # 异步提交任务  submit/map     # 阻塞直到任务完成 shutdown     # 获取子线程的返回值 result     # 回调函数          add_down_callback

转载于:https://www.cnblogs.com/youhongliang/p/9707972.html

你可能感兴趣的文章
P2234 [HNOI2002]营业额统计
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
数据结构测试1 on 2019.9.24
查看>>
有道词典_每日一句_2019/07
查看>>
读书_2019年
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>
ASC47B borderless
查看>>
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
关于ajax回调数据类型为Json,如何获得他的值
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>