【问题标题】:reactor vs proactor反应器与前导器
【发布时间】:2012-08-05 06:10:01
【问题描述】:

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

此外,这些模式中的哪一个用于故障安全,哪个用于快速故障?

【问题讨论】:

  • 这个故障保护/故障保护是否有更多背景,或者这是某种家庭作业问题?我的意思是,你有什么具体的目标吗?
  • 它的家庭作业问题。我正在寻找故障安全,我开始了解反应堆模式。但我找不到任何文档说明我们必须如何在反应堆模式中实现故障安全
  • 如果您要引用非标准模式,那么您应该引用您从中获得它们的相应模式目录/存储库。

标签: java design-patterns


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 2021-11-27
      • 2019-06-23
      • 2017-06-14
      • 2016-04-10
      • 2021-12-11
      相关资源
      最近更新 更多