是否可以创建一个可以同时做更多事情的程序(例如 python)?例如:
import time
while True:
time.sleep(30)
#do something that require some seconds. time.sleep just for example
但同时做一些其他事情,比如检查时钟,如果时间是 12:00,则打印“现在是 12:00”。
这可能吗?
操作系统可能会做类似的事情吗?
最佳答案
是的,这是很有可能的。
multithreading和 multiprocessing包等可用于同时执行多项操作。
通常,当您想串联执行的操作是“IO 绑定(bind)”时,使用多线程,例如等待套接字或磁盘写入。当操作“受 CPU 限制”时使用多处理,例如进行计算。
之所以需要这两者,是因为 CPython(最常见的实现)使用全局锁:全局解释器锁 (GIL)。锁防止多条指令同时执行,即使在不同的线程上也是如此。如果您使用另一个没有 GIL 的实现,则可以在这两种情况下使用多线程。正如文档页面所提到的,多处理只是用来绕过锁。
关于python - 可以同时做更多的 Action 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839555/