SimpleXMLRPCServer 是单线程吗?

4 投票
2 回答
3935 浏览
提问于 2025-04-16 12:01

可能重复的问题:
Python XMLRPC与并发请求

我正在写一个Python应用程序,它将作为XML-RPC服务器,使用SimpleXMLRPCServer类。

现在我想问的是:如果两个或更多的客户端同时发送请求,会发生什么?请求会排队吗?我能保证如果两个客户端调用相同或不同的函数,它们会一个接一个地执行,而不是同时执行吗?

2 个回答

1

如果你只需要你的应用程序处理XML-RPC请求(如果需要的话,可以同时处理多个),你可以看看Pythomnic这个框架。

8

我认为SimpleXMLRPCServer这个库的实现确实是单线程的。这意味着它一次只能处理一个请求。如果你想让它能够同时处理多个请求,就需要添加一个混合类来实现多线程服务:

from SocketServer import ThreadingMixIn
from SimpleXMLRPCServer import SimpleXMLRPCServer

class MyXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
    """..."""

撰写回答