18

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

此外,哪些模式用于故障安全,哪些用于快速故障?

4

2 回答 2

4

反应器模式中,您将轮询设备是否准备好做某事,而在前摄器模式中,您将做某事并轮询它的完成情况。

反应器模式的好例子是:epoll(Linux)、kqueue(MacOS、FreeBSD)、select(Linux、MacOS、Windows)方法。前摄器模式的一个很好的例子是 Windows IOCP 方法。

于 2020-05-25T14:02:18.917 回答
3

参考快速失败还是安全失败?以及 wiki 文章,我会说 proactor 是故障安全的,reactor 是快速故障的。具有完成处理程序的 Proactor 为其提供了一种更“安全”的方法。如果一个任务失败同时阻塞了大量资源,那么像reactor这样的同步环境将有很大的失败。希望这可以帮助。

于 2013-02-19T18:57:16.587 回答