0

チャネル状態を追跡するために、ChannelHandlersでインスタンス変数を使用しています。しかし、私のパイプライン構成はOrderedMemoryAwareThreadPoolExecutorを使用しています。

つまり、すべてのアップストリームイベントは常に順番に処理され、同時実行性はなく、スレッドセーフの問題について心配する必要はありません。

ただし、いずれの場合も、ハンドラーはExecutionHandlerのさまざまなスレッドによって呼び出されます。では、同時に呼び出されることはありませんが、すべてのインスタンス変数を揮発性として宣言して、スレッド間で表示できるようにする必要がありますか?

揮発性変数について私が読んだすべてのドキュメントには、変更がスレッド間で表示されることを保証する場合に必要であると記載されていますが、スレッドが常にこれらの変数に順番にアクセスすることを保証する場合にも、これが必要かどうかは指定されていません。

また、現在のnettyコーデックは揮発性属性を使用していないので、OrderedMemoryAwareThreadPoolExecutorの後に使用できますか?

4

1 に答える 1

0

ええ..ExecutionHandlerを使用する場合でも、揮発性または同期の必要はありません。

于 2012-07-25T18:12:10.987 に答える