千家信息网

Python如何进行多线程操作

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要讲解了"Python如何进行多线程操作",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python如何进行多线程操作"吧!1、线程池模块引入
千家信息网最后更新 2024年11月20日Python如何进行多线程操作

这篇文章主要讲解了"Python如何进行多线程操作",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python如何进行多线程操作"吧!

1、线程池模块

引入

from concurrent.futures import ThreadPoolExecutor

2、使用线程池

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

from concurrent.futures import ThreadPoolExecutorimport timepool = 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 ThreadPoolExecutorimport timepool = 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如何进行多线程操作这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0