2

通常、サービスを呼び出すと、プール内のスレッドが使用可能になるまでブロックされ、その後結果が返されます。

Netty、または一般的な先物を使用すると、ブロックせずにすぐに戻ります。実際に値が必要な場合にのみ、.get() を呼び出すか、API が何であれ、データが返されるまでブロックします。

サービス、またはクライアント/サーバーモデルを扱う場合、これは、非同期を行うときにサーバーに接続/切断することを意味します。プログラミングは正しいですか?(ブロックしないという利点があります)。

これは正しいです?

Netty は基本的に SEDE (staged event-driven architecture) と Java の NIO データ型を使用して設計されています。

4

1 に答える 1

10

いいえ。

Netty を非同期的に使用するということは、接続を管理し、I/O をプッシュする操作が別のスレッドで実行され、元の呼び出し元に要求された操作の結果が後で通知されるか、読み取り可能なデータがある場合に関心のあるリスナーがコールバックされることを意味します。 .

必要に応じてアプリケーション スレッドをブロックできますが、非同期操作の完了時に実行されるコールバックを定義できるため、これは必須ではありません。

サービス、またはクライアント/サーバーモデルを扱う場合、これは、非同期プログラミングを正しく行うときにサーバーに接続/切断することを意味しますか? (ブロックしないという利点があります)。これは正しいです?

その段落の事実上、正しいものは何もありません。

これらの基本的な概念のより良い説明として、このチュートリアルをお勧めします (完全な開示、私が書きました)。

于 2012-06-11T20:16:45.083 に答える