grpc-java はServerBuilder
、メソッドで定義されていない場合builder.executor()
、デフォルトで静的にキャッシュされたスレッド プールを使用する executor を使用します。このエグゼキュータの正確な用途は何ですか? ハンドラーメソッドを実行するだけですか、それとも「何か他のこと」も行いますか?
また、 grpc は netty worker をどのように定義していますEventLoopGroup
か? 具体的には、ワーカー スレッドがこのワーカー グループにどのように割り当てられているかを知りたいです。スレッド数のデフォルトはありますか、それともマシンのコア数の関数ですか? また、上記の質問に関連して、これらのネットワーカーはエグゼキューターとどのように連携しますか? I/O だけを処理するか (チャネルの読み取りと書き込み)?
編集:Netty、デフォルトでは(2 *コア数)ワーカースレッドを作成します。