stdout、stderr、およびstdinをPipe.SourceChannelを介してBytesBuffersとの間でパイプするプログラムがあります。
プログラムは各チャンネルをセレクターに登録します。
ループ内のプログラムは、stdout、stderr、およびstdinに対応するselectedKeysのセット内の各キーを定期的に繰り返します。キーごとに、キーが有効であり、読み取り可能または書き込み可能であるかどうかを判断し、有効である場合は、ByteBufferとの間で対応するIO操作を実行します。
私の質問は、プログラムの開始時に最初に選択されたキーのセット(stdin、stdout、stderrに対応)について何を想定できるかということです。
stdinのキーは、常に準備ができ、有効で、読み取り可能な最初のキーになりますか?stdoutのキーは、stdinの前に準備ができていて、有効で、読み取り可能でしょうか?
私のプログラムの振る舞いはランダムなIOの振る舞いをしているので、私は尋ねます、そして私は初期のキーセットメンバーシップについての私の仮定が間違っていると推測しています。
前もって感謝します。