Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 什么';gRPC epoll1轮询引擎的旋转栅门轮询机制的点是什么?_Sockets_C++11_Grpc_Epoll - Fatal编程技术网

Sockets 什么';gRPC epoll1轮询引擎的旋转栅门轮询机制的点是什么?

Sockets 什么';gRPC epoll1轮询引擎的旋转栅门轮询机制的点是什么?,sockets,c++11,grpc,epoll,Sockets,C++11,Grpc,Epoll,我正在学习gRPC的实现,不能理解轮询引擎的设计 根据GRpc的最佳实践,用户可以创建多个CompleteQueue并为每个队列分配一个线程,该线程将而(cq.Next())来完成工作。上面的图片来自官方教程,它表明在epoll1中,一次只能有一个线程调用epoll\u wait 我的第一个问题是GRpc使用SO\u REUSEPORT创建套接字fd,因此内核将向这些fd分派事件,为什么不让这些线程在epoll\u上独立轮询?为什么在条件变量上互相阻塞?这里的权衡是什么

我正在学习gRPC的实现,不能理解轮询引擎的设计

根据GRpc的最佳实践,用户可以创建多个CompleteQueue并为每个队列分配一个线程,该线程将
而(cq.Next())
来完成工作。上面的图片来自官方教程,它表明在
epoll1
中,一次只能有一个线程调用
epoll\u wait

我的第一个问题是GRpc使用
SO\u REUSEPORT
创建套接字
fd
,因此内核将向这些
fd
分派事件,为什么不让这些线程在
epoll\u上独立轮询
?为什么在条件变量上互相阻塞?这里的权衡是什么