Linux TCP网关的线程结构方案如何设计才能适应需求?

摘要:如果所示: 无论客户端还是服务端链接网关的socket都拆分为读EPoll、写EPoll分别独立。 有两个线程:线程A(左)、线程B(右): 线程A负责服务端Socket的读和客户端socket的写,当读到服务端socket发给客户端的数据
如果所示: 无论客户端还是服务端链接网关的socket都拆分为读EPoll、写EPoll分别独立。 有两个线程:线程A(左)、线程B(右): 线程A负责服务端Socket的读和客户端socket的写,当读到服务端socket发给客户端的数据时根据规则找到对应的客户端的socket并直接写。 线程B负责服务端Socket的写和客户端socket的读,当读到客户端socket发给服务端的数据时根据规则找到对应的服务端的socket并直接写。 优点: 无论线程A和线程B在转发数据时,无需将数据投递到另外的线程,从而避免可能的线程唤醒操作导致的性能消耗。