百科问答小站 logo
百科问答小站 font logo



在同一个进程中,能否在一个线程用一个epoll大循环管理多个UdpServer+TcpServer? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

可以。

实践上,在某些特定场景下也会有实际价值:

例如说探活/心跳服务。这类服务需要同时应付极大量的客户,而且自身消耗的资源尽可能少(毕竟不是复杂的业务功能服务)。但具体每个请求都特别短,处理起来也特别简单。用这种模式可以极大减少无意义的并发切换开销,简化处理流程,同时也能提高稳定性和可靠性。

另外就是在这基础上还可以扩展一下:通常情况下这么维持心跳。极偶然会有些需要复杂处理的指令(例如说一些客户端的异常状态上报),就fork一个短进程出来单独处理。

总之,这类架构有种短小精致的“古典美”。作为学习用途比较多,不太符合当前主流的发展思路,实际大规模应用得比较少,但在某些特定场景还是能简单这样的遗存的。




  

相关话题

  把操作系统编译结果的机器码更改一位,比如将第一位0改成1或者反之,操作系统还能运行吗? 
  Linux 系统上用到了微软的哪些专利? 
  学习 Linux ,Ubuntu 单系统和 Ubuntu 与 Windows 双系统,哪一个较好? 
  android主线程如何保证获取足够的时间片? 
  为什么 Android 要采用 Binder 作为 IPC 机制? 
  gettimeofday实现原理,该接口是如何和HPET配合实现微秒精度时间的获取的? 
  维护一个大型开源项目是怎样的体验? 
  腾讯不积极开发 Linux 版微信和 QQ 是否阻碍了国内 Linux 用户群的发展? 
  Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别? 
  Linux中“一切皆文件”是什么意思? 

前一个讨论
python中用isdigit函数判断是否为数字,但当输入为负数是不行?怎么解决?
下一个讨论
大连幼师称望疫情不停被列失信人员,搞不懂,这和失信有啥关系呢?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利