服务器之家

服务器之家 > 正文

Python 线程池模块之多线程操作代码

时间:2021-11-08 10:25     来源/作者:简简单单OnlineZuozuo

1、线程池模块

引入

?
1
from concurrent.futures import ThreadPoolExecutor

2、使用线程池

一个简单的线程池使用案例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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]
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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、获取结果

阻塞等待

?
1
print(task.result())

批量获取结果

?
1
2
for future in as_completed(all_task):
    data = future.result()

阻塞主线程,等待执行结束再执行下一个业务

?
1
2
3
# 等待线程全部执行完毕
wait(pool.submit(fun,1,2),return_when=ALL_COMPLETED)
print('')

以上就是Python 线程池模块之多线程操作代码的详细内容,更多关于Python 线程池模块的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/qq_15071263/article/details/116891521

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部