如何使多处理从lis中删除自身

2024-05-19 05:53:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个服务器(目前是echo服务器),它使用多处理来处理客户机连接。在

因为我想在服务器宕机时能够正确地关闭与每个客户机的连接。我将所有的连接都添加到一个列表中,不幸的是,我想不出一种方法不包括在新客户机连接时浪费时钟周期或更新列表。从列表中删除关闭的连接。在

我很清楚如何将流程从列表中删除,如下所示:

for i in xrange(len(sock.rProcesses)):
    if not sock.rProcesses[i].is_alive():
        del sock.rProcesses[i]

至于我的代码是:

^{pr2}$

我真的不知道在这里使用队列是不是一个好主意(我真的不知道他们做什么)。我只能考虑使用多进程while循环,或者在连接后检查,我个人都不想使用。还是我做错了?(这是为了我的A2项目,所以我有点新手。)

服务器不允许在我的计算机上使用IPv4连接,因此如果您希望拥有客户端和设置(仅本地主机和端口),请使用以下链接:https://gist.github.com/Peilonrayz/ab693564145c53aa146c


Tags: 方法inecho服务器列表for客户机len

热门问题