reactor模型要求主线程只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线程,除此之外,主线程不做任何其他实质性的工作,读写数据、接受新的连接以及处理客户请求均在工作线程中完成。其模型组成如下:
1)Handle:即操作系统中的句柄,是对资源在操作系统层面上的一种抽象,它可以是打开的文件、一个连接(Socket)、Timer等。由于Reactor模式一般使用在网络编程中,因而这里一般指Socket Handle,即一个网络连接。
2)Synchronous Event Demultiplexer(同步事件复用器):阻塞等待一系列的Handle中的事件到来,如果阻塞等待返回,即表示在返回的Handle中可以不阻塞的执行返回的事件类型。这个模块一般使用操作系统的select来实现。
3)Initiation Dispatcher:用于管理Event Handler,即EventHandler的容器,用以注册、移除EventHandler等;另外,它还作为Reactor模式的入口调用Synchronous Event Demultiplexer的select方法以阻塞等待事件返回,当阻塞等待返回时,根据事件发生的Handle将其分发给对应的Event Handler处理,即回调EventHandler中的handle_event()方法。
4)Event Handler:定义事件处理方法:handle_event(),以供InitiationDispatcher回调使用。
5)Concrete Event Handler:事件EventHandler接口,实现特定事件处理逻辑。
本文向大家介绍请你来说一下fork函数?相关面试题,主要包含被问及请你来说一下fork函数?时的应答技巧和注意事项,需要的朋友参考一下 Fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: #include <sys/types.h> #include <unistd.h> pid_t fork(void); 成功调用fork( )会创建一个新的进程,它几乎与调用fork(
本文向大家介绍请你来说一说协程?相关面试题,主要包含被问及请你来说一说协程?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、概念: 协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。 例如: 由协程运行结果可能是12x3yz。在执行A的过程中,可以随时中断,去执行B,B也可能在
本文向大家介绍请你来说一下awk的使用相关面试题,主要包含被问及请你来说一下awk的使用时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)作用: 样式扫描和处理语言。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 2)用法: awk [-F field-separator] 'commands' input-file(s
本文向大家介绍请你来介绍一下5种IO模型相关面试题,主要包含被问及请你来介绍一下5种IO模型时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1.阻塞IO:调用者调用了某个函数,等待这个函数返回,期间什么也不做,不停的去检查这个函数有没有返回,必须等这个函数返回才能进行下一步动作 2.非阻塞IO:非阻塞等待,每隔一段时间就去检测IO事件是否就绪。没有就绪就可以做其他事。 3.信号驱动IO:信
本文向大家介绍请你说一下jmeter相关面试题,主要包含被问及请你说一下jmeter时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Jmeter:Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Jav
本文向大家介绍请你来说一说http协议相关面试题,主要包含被问及请你来说一说http协议时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)HTTP协议: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来