python - 可以同时做更多的 Action 吗?

标签 python asynchronous process

是否可以创建一个可以同时做更多事情的程序(例如 python)?例如:

import time
while True:
    time.sleep(30)
    #do something that require some seconds. time.sleep just for example

但同时做一些其他事情,比如检查时钟,如果时间是 12:00,则打印“现在是 12:00”。

这可能吗?

操作系统可能会做类似的事情吗?

最佳答案

是的,这是很有可能的。

multithreadingmultiprocessing包等可用于同时执行多项操作。

通常,当您想串联执行的操作是“IO 绑定(bind)”时,使用多线程,例如等待套接字或磁盘写入。当操作“受 CPU 限制”时使用多处理,例如进行计算。

之所以需要这两者,是因为 CPython(最常见的实现)使用全局锁:全局解释器锁 (GIL)。锁防止多条指令同时执行,即使在不同的线程上也是如此。如果您使用另一个没有 GIL 的实现,则可以在这两种情况下使用多线程。正如文档页面所提到的,多处理只是用来绕过锁。

关于python - 可以同时做更多的 Action 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839555/

相关文章:

python - 清理 matplotlib imshow 中好数据和坏数据之间的模糊边界

python 匹配列表中的项目以创建新列表

c - 如何在 gdb 中调试带有信号处理程序的 C 程序?

C++ 从进程中获取用户名

python - 将 numpy.bool 数组写入压缩文件?

javascript - 谷歌地图 : asynchronous loading with coffeescript

python - Aiohttp:如何发送 header 中的字节?

javascript - 是否可以获取动态加载的javascript文件的下载进度?

Android 应用程序在调用 System.exit(0) 后没有关闭

python - 读取大文件而不重新分配内存