我知道网络编程可能是一个很大的陷阱。有同步/异步处理套接字的方法。
现在我有一个应用程序使用大量线程与同步套接字send / recv到服务器。我相信这是编写网络应用程序的一种非常低效的方式。我的问题是,是否有任何透明(通过预加载)网络加速库,可以用更现代的epoll / async方式神奇地替换遗留应用程序中的线程/同步模型?就像tcmalloc对malloc做的那样?
THX!
==================
好的,简短的调查似乎说得不好。然后我要编写自己的加速库。祝自己好运。
答案 0 :(得分:1)
线程通常与阻塞模型一起使用(即等待数据准备好),而epoll / async使用非阻塞事件驱动模型。虽然将非阻塞代码封装到使用阻塞模型开发的应用程序中相当容易,但事实并非相反。要从阻塞转移到基于非阻塞事件的模型,您必须重新考虑并重写您的应用程序。