同一个Python解释器实例同时运行多个脚本?

2024-02-25

6-7 年前,我看到了一种在资源紧张的 env 上运行 python 的倡议,只需运行解释器一次,同时允许多个脚本同时使用它。

这个想法是节省解释器启动开销并节省 RAM。

是否存在类似的东西?

这个问题Python:从同一个解释器同时执行多个脚本 https://stackoverflow.com/questions/2176053/can-we-execute-mutiple-python-scripts-from-same-interpreter没有解决并发问题。至少答案是关于顺序运行的,但我需要同时运行:)

ideas?


是的,也不是。 Python 本身使用全局解释器锁(GIL),如果您愿意的话,您可以阅读很多相关内容。然而,长话短说,它确保解释器基本上是单线程的。您可以在 Python 程序中创建(并运行)多个线程,但是当/如果它们使用 Python 解释器时,一次只能有一个线程执行此操作。但是,如果您的线程主要运行来自 SciPy 或 NumPy 之类的代码(这是不会被解释的本机代码),那么您可以同时运行多个线程。

然而,大多数操作系统都具有进程内存页面的“写入时复制”机制,这意味着(只要不修改代码)解释器使用的大部分代码将被共享,而无需您进行任何额外的工作(或口译员的)。 IOW,当您运行解释器的两个或多个副本时,第二个和后续副本将与第一个共享大部分内存(至少对于可执行代码),因此当您运行更多时,资源使用量不会线性增加(任何接近)实例。启动时间也将大大减少——操作系统必须创建一个新的页表,将内存页面映射到新进程,但不需要从磁盘或类似的东西重新读取这些页面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一个Python解释器实例同时运行多个脚本? 的相关文章

随机推荐