这篇文章主要讲解了“Python如何进行多线程操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何进行多线程操作”吧!
引入
from concurrent.futures import ThreadPoolExecutor
一个简单的线程池使用案例
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())
阻塞等待
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如何进行多线程操作这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。