只有一个Python解释器执行多个并发脚本吗?

时间:2013-03-23 03:19:05

标签: python linux rest concurrency parallel-processing

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

1次调用= 300MB / s

2次调用= 300MB / s

4次调用= 300MB / s

8次调用= 300MB / s

起初我虽然它是某种磁盘读取限制,但我修改了脚本,因此它不需要硬盘驱动器访问并使用最少的内存,我仍然得到完全相同的吞吐量。执行期间的CPU和内存使用量很小。

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

1 个答案:

答案 0 :(得分:1)

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

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

300MB / s是非常快的,所以我想知道你是否还没有将兆字节与兆比特混淆。