反应器与前置器

2022-09-02 14:01:29

谁能解释反应堆模式和生产者模式之间的区别?我知道在反应堆模式中,操作是同步的,在proactor中它们是异步的,而且在反应堆中,操作由处理器完成,由反应堆移交给客户端。(如果我错了,请纠正我)

另外,这些模式中哪一种用于故障安全,哪种用于快速故障?


答案 1

反应堆模式中,您将轮询设备是否准备好做某事,而在proactor中,您将做某事并轮询其完成。

反应堆模式的好例子是:epoll(Linux),kqueue(MacOS,FreeBSD),select(Linux,MacOS,Windows)方法。proactor 模式的一个很好的例子是 Windows IOCP 方法。


答案 2

引用快速失败还是故障安全?以及wiki文章,我会说proactor是故障安全的,而反应堆是快速故障的。具有完成处理程序的 Proactor 为其提供了一种更“安全”的方法。如果一个任务在阻塞大量资源的同时发生故障,则像反应堆这样的同步环境将出现较大的故障。希望这有帮助。


推荐