python中怎么实现并发和异步编程 您所在的位置:网站首页 手动创建线程池 python中怎么实现并发和异步编程

python中怎么实现并发和异步编程

2023-06-05 12:08| 来源: 网络整理| 查看: 265

并发编程的概念

并发编程是指多个计算机程序同时执行,并且在同一时间共享CPU时间。通过这种方式可以实现更多地效率和优化。在python中,实现并发编程的最好方式就是利用多线程来实现。

1. python多线程模块

import threading thread1 = threading.Thread(target=function, args=(arg1,arg2,)) thread1.start()

2. 线程池

线程池是一组已经就绪的线程,可以重复使用。我们只需要向线程池中添加任务,然后由线程池中的可用线程自动去执行任务而不需要手动创建线程。一般来说,线程池中线程的数量会根据实际情况动态调整。

from concurrent.futures import ThreadPoolExecutor pool = ThreadPoolExecutor(4) pool.submit(function, args=(arg1,)) 异步编程的概念

在python中,异步编程就是指一种非阻塞式IO操作的方式。相比于同步编程,异步编程的核心是利用事件循环机制,通过一种“回调”函数的方式来处理IO操作。在python中实现异步编程的方式是使用asyncio模块。

1. asyncio模块

import asyncio async def function(): await asyncio.sleep(1) loop = asyncio.get_event_loop() results = loop.run_until_complete(function()) loop.close()

2. async/await关键字

使用async/await关键字可以让函数变成异步函数,遇到IO操作时会中止当前函数执行直到IO完成。使用await关键字必须将函数声明成异步函数。

import asyncio async def function(): await asyncio.sleep(1) 并发编程和异步编程的区别

尽管并发编程和异步编程都是实现高效利用CPU及IO的方式,但二者之间还是存在很大差别的。

1. 并发编程拥有多个线程(或进程),同时进行某一任务或操作,它强调的是分布式;而异步编程是一种流程全部交给事件循环来控制,它强调的是“协作式”的。

2. 并发编程适用于CPU密集性较高的场景,而异步编程适用于IO密集型场景。

3. 在并发编程中,线程之间的切换是由操作系统来控制的,而在异步编程中,则是应用程序控制线程的切换。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有