您的位置:首页 > 新闻 > 热点要闻 > 怎么制作网页支付链接_办公室装饰_app推广拉新一手渠道代理_seo实战密码在线阅读

怎么制作网页支付链接_办公室装饰_app推广拉新一手渠道代理_seo实战密码在线阅读

2025/1/10 7:32:17 来源:https://blog.csdn.net/a20040518/article/details/145042924  浏览:    关键词:怎么制作网页支付链接_办公室装饰_app推广拉新一手渠道代理_seo实战密码在线阅读
怎么制作网页支付链接_办公室装饰_app推广拉新一手渠道代理_seo实战密码在线阅读

 Reactor

Reactor 采用I/O多路复用监听事件,收到事件后,根据事件类型分配给某个进程/线程。

实际应用中用到的模型:

单 Reactor 单进程

单 Reactor 多线程

优点:能充分利用多核CPU性能。

缺点:存在多线程竞争共享资源。(比如子线程处理完业务后,要把结果传递给主线程的Handler进行发送,这里涉及共享资源的竞争)

多 Reactor 多进程 / 线程

单 Reactor 模式存在的问题:一个 Reactor 对象承担所有事件的监听和响应,而且只在主线程运行,在面对瞬间高并发场景时,会出现性能瓶颈。

多 Reactor 多线程:

 

惊群现象 

惊群现象是指在多进程或多线程的并发系统中,当某个资源或事件变得可用时,多个等待的进程或线程会同时被唤醒,导致它们竞争资源或进行相同的操作,从而引发系统的性能下降,甚至出现大量无效的工作。

如何避免惊群现象?

1.使用信号量或条件变量管理线程的唤醒,保证每次只有一个线程被唤醒。

2.将待处理的任务放入队列,唤醒的线程按照一定顺序依次处理任务,从而避免多个线程同时处理相同任务的情况。

3.采用延迟唤醒机制。比如,可以在满足条件时仅唤醒一个线程,或者通过短暂的延时来避免大量线程同时被唤醒。

4.采用负载均衡策略,将多个进程/线程分配到不同的资源池中,确保每个线程不会竞争同一个资源,降低资源冲突的可能性。

Proactor 

Linux 网络编程中的 socket 不支持异步I/O,所以基于 Linux 的高性能网络程序都是使用 Reactor 方案;Windows 网络编程中的 socket 支持异步I/O,能实现效率更高的 Proactor 方案。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com