ネットワーキングを行うコードを作成する場合は、これらのフレームワークのいずれかを使用できます。
たとえば、多人数参加型のビデオ ゲームを作成する場合、「リクエストごとにスレッドをディスパッチする Java プログラムをセットアップする」という選択肢はおそらくありません。多くのスレッドが驚くほど複雑であり、パフォーマンスも低いことをジャグリングします。「たくさんのスレッドを生成するだけ」という事実は言うまでもありませんが、Twisted などの管理ツールが不足しています。アル。のようtwistd
に、ロギング、デーモン化、起動とシャットダウンなどを処理します。
または、ビルド自動化システムを作成する場合は、サブプロセスを非同期的に呼び出して制御する機能が役立ちます。プロセスを非同期的に生成すると、そのプロセスを簡単に強制終了し、その終了を適切に処理できます。スレッドを開始してそのスレッドでブロックすることによってそれを生成した場合、スレッドを停止することは本質的に安全ではないため、簡単に停止することはできません。
EventMachine と Twisted の両方を使用して、クライアント側のプログラムを作成することもできます。Web ベースではない GUI アプリケーションを作成していて、クライアントとサーバーで同じプロトコル実装を使用したい場合があります。
非同期フレームワークは非常に多くの異なるコンテキストで使用できるため、使用したい非同期フレームワークを使用する他のアプリケーション用に記述された既存のライブラリ コードがあるという理由だけで、それを Web アプリケーションで使用したい場合があります。または、Web アプリケーションのコードを、将来の架空の Web 以外のアプリケーションで再利用できるようにしたい場合もあります。この場合、Apache や Tomcat などを使用する場合と機能面でそれほど違いはありません。プログラムを編成するための、より一般的で再利用可能な方法を提供するだけです。