pyzmq zmq_req我可以有一个上下文并使用几个套接字吗?

2024-05-20 18:47:09 发布

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

我目前正在进行一个基准测试项目,在这个项目中,我试图用zmq请求给服务器施加压力

我想知道实现这一点的最佳方法是什么,我想用一个上下文来创建一个套接字并将其推入一个线程,在这个上下文中,我将分别在每个线程中发送请求并等待响应,但我不太确定这是否可能,因为python的局限性

此外,所有线程是否都使用相同的套接字,也就是说,如果我在一个线程上等待响应(使用自己的套接字),另一个线程是否可以捕获该响应

谢谢

编辑: 测试流逻辑如下所示:

客户端套接字将使用zmq.REQ。 客户端发送消息。 客户端等待响应。 如果没有响应,客户端将重新连接并重试,直到限制

我希望将此操作扩展到任意数量的客户端,宁愿不处理流程,除非在性能方面差异很大

你会怎么做


Tags: 项目方法服务器消息编辑客户端基准逻辑
1条回答
网友
1楼 · 发布于 2024-05-20 18:47:09

Q : "...can I have one context and use several sockets?"

哦,当然可以

此外,您可以有几个Context()-实例,每个实例管理几乎任意数量的Socket()-实例,每个Socket()-实例的方法可以从一个且仅一个python线程调用(Zen of Zero规则:零共享

由于已知的GIL锁对所有基于线程的代码执行流进行了重新定义,这仍然需要并且将等待获得GIL锁所有权,这反过来允许GIL锁所有者(而不是其他人)在将GIL锁重新释放到其他线程之前执行固定数量的python指令

相关问题 更多 >