有人能解释反应堆模式和前驱模式之间的区别吗? 我知道在reactor-pattern中,操作是同步的,并且在proactor中它们是异步的,并且在反应器中操作由处理器完成,处理器由反应器移交给客户端。 (如果我错了,请纠正我)
另外,在故障安全的情况下使用哪种模式,哪种模式用于快速失败?
答案 0 :(得分:3)
引用Fail fast or fail safe?以及wiki文章我会说proactor是故障安全的,而reactor是快速失败的。具有完成处理程序的Proactor为其提供了更“安全”的方法。如果一个任务在阻塞大量资源时失败,则同步环境(如reactor)将会出现大量故障。希望这可以帮助。
答案 1 :(得分:1)
在 reactor 模式下,您将轮询设备以准备执行某项操作,而在 proactor 中,您将进行某些操作并对其完成进行轮询。
反应器模式的好例子是:epoll(Linux),kqueue(MacOS,FreeBSD),select(Linux,MacOS,Windows)方法。 前摄器模式的一个很好的例子是Windows IOCP方法。