python - 是否只有一个 Python 解释器执行多个并发脚本?

标签 python linux rest concurrency parallel-processing

我有一个 Python 脚本,它使用 REST API 以 10MB 的 block 向服务器发送值(value) 4GB 的数据。无论我同时调用多少这些脚本,我都获得了完全相同的客户端总吞吐量(10Gb 网络,服务器类系统):

1 次调用 = 300MB/s

2 次调用 = 300MB/s

4 次调用 = 300MB/s

8 次调用 = 300MB/s

起初我认为这是某种磁盘读取限制,但我修改了脚本,使其不需要硬盘驱动器访问并使用最少的内存,我仍然获得完全相同的吞吐量。执行期间的 CPU 和内存使用率极低。

进一步研究后,我了解到 Python 解释器是单线程的。这很好(我猜是有道理的),但是否有可能一次只调用一个 Python 解释器实例,尽管同时调用了多个 Python 脚本?

最佳答案

不,多个单独执行的 python 进程不会共享线程或任何其他状态。

最有可能的情况是 300MB/s 是您的客户端可以支持的最快速度,或者您的服务器可以支持的最快速度。

300MB/s 非常快,快到我想知道您是否没有混淆兆字节和兆比特。

关于python - 是否只有一个 Python 解释器执行多个并发脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582962/

相关文章:

linux - 如何从 jenkins 作业在工作区中创建点文件

javascript - 将 JSON 对象数组映射到字符串

java - Spring REST 总是返回 404 Not Found

python - for循环并在Python中添加额外的列groupby pandas dataframe

python - 创建不同变量类型的 DataFrame

C 编程 -> 链表和结构

c++ - 当静态库不可用时,是否可以从 linux 交叉编译 Windows?

python - Django 可重用应用程序教程,ImportError : No module named 'polls'

python - 制作 Pandas 系列的直方图

rest - 我如何暴露非标准的 Restful Action