如果您想编写网络代码,您可以使用这些框架之一。
例如,如果您要编写大型多人视频游戏,“设置一个 Java 程序……为每个请求分配一个线程”可能不是一个选项。处理这么多线程非常复杂,而且性能也很差。更不用说“只产生一堆线程”缺少一堆 Twisted 等管理工具的事实。人。have, like twistd
,它处理日志记录、守护进程、启动和关闭等。
或者,如果您想编写一个构建自动化系统,异步调用和控制子流程的能力会很有用。如果您异步生成一个进程,您可以轻松地终止该进程并优雅地处理它的退出。如果您通过启动一个线程并在该线程中阻塞来生成它,您将无法轻易停止它,因为停止线程本质上是 unsafe。
EventMachine 和 Twisted 都可以用来编写客户端程序;也许您正在编写一个不基于 Web 的 GUI 应用程序,并且您希望在客户端和服务器上使用相同的协议实现。
由于您可以在许多不同的上下文中使用异步框架,因此您可能只想在 Web 应用程序中使用它,因为您有现有的库代码,这些代码是使用您想要使用的异步框架为其他应用程序编写的。或者您可能希望能够在一些假设的未来非 Web 应用程序中重用您的 Web 应用程序代码。在这种情况下,它与使用 Apache 或 Tomcat 或其他任何功能没有太大区别,它只是为您提供了一种更通用、可重用的方式来组织您的程序。