
在执行 Profile 的时候发现大量的时间消耗在了这两个方法上,个人认为主要原因在于如下的代码:
event = threading.Event()
socket.write(data)
while request_id not in results:
event.clear()
event.wait()
result = results[request_id]
print result
result = socket.read()
results[request_id] = result
event.set()
上面代码的目的是为了把异步的网络请求转为同步请求,客户端在请求发出去之后就进入阻塞状态,直到服务端的响应返回值后,我在读取数据到 results 之后唤醒请求线程,之后请求线程继续执行。
我有两个问题想请问下各位大佬:
- 上面的代码是产生图片中方法时间消耗的原因吗?
- 上面的代码会对性能产生影响吗,影响有多大?
- Python 有没有什么更好的方式来实现异步的通信转为同步呢?
谢谢大家!!!😋