LoginSignup
1
2

More than 5 years have passed since last update.

Jetty WebSocketClientをシングルスレッドで動かす

Posted at

Jetty Websockectクライアントライブラリは、デフォルトでワーカスレッドが複数立ち上がります。この場合、ライブラリがメッセージを受信し、受信コールバック内が呼び出されたい際に、コールバック内で重たい処理を行うとコンテキストスイッチが起こり、処理順序が変わってしまう可能性があります。

対策としては、シングルスレッドで動かすことです。マルチスレッド特有のめんどくささからは開放されます。

シングルスレッドで動かすためには、WebSocketClientにFixedThreadPoolを指定します。ここでスレッド数は2つである点に注意してください。ワーカスレッドは1つでも内部動作用にもう1つ指定しないと動かないようです。

Executor executor = Executors.newFixedThreadPool(2);
WebSocketClient client = new WebSocketClient(executor); 
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2