服务器开发两种并发编程模式

服务器的两种并发编程模式:

1:半同步/半异步模式:
工作模式:主线程只负责监听sockfd,连接和客户处理都由工作线程完成,每个线程(主线程和工作线程)都有自己的事件循环(都有自己的事件表)。每个线程都工作在异步模式。

半同步/半异步中的“同步”,“异步”和I/O模型中的同步和异步是不同的概念。在并发编程中,“同步”是指,指定了要处理哪个事件,就不能先处理其他的事件,必须要把这个事件处理完,才能处理其他事件。“异步”是指可以同时等待处理多个事件,谁准备好了,就处理谁。
比方说:你去商城买东西,你看上了一款手机,能和店家说你一个这款手机,他就去仓库拿货,你得在店里等着,不能离开,这叫做同步。现在你买手机赶时髦直接去京东下单,下单完成后你就可用做其他时请
同步线程好处:逻辑简单
异步线程好处:执行效率高
服务器这种应用程序,采用半同步/半异步的方式来实现。同步线程用于处理客户请求,异步用于处理I/O事件。

半同步/半异步的一种变体模式:半同步/半反应堆模式:
工作模式:主线程负责监听sockfd上所有事件,同时负责连接工作,工作线程,从请求队列中获取连接好的socket,进行读写处理缺点:因为是半同步,所以每个线程同一时间只能处理一个客户请求,如果客户多,工作线程少,那么客户响应会比较慢。
2:领导者和追随者模式:工作模式:轮流获得事件源的集合,轮流成为新一代的领导者(工作者),还没用被轮流到的工作线程休眠在线程池中成为追随者(不工作者),在这种模式下,每一个工作线程处理完成所有事件。

更多细节请参考《Linux高性能服务器编程》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值