Diarkis のスレッド

Diarkis クライアントで使用するスレッドについて説明します。

本ページでは Diarkis で使用するスレッドについて説明します。 Diarkis Module のスレッドは、DiarkisInterfaceBase::DiarkisInit() の初期化の中で 作成 されます。IDiarkisTransport::Connect() を呼び出した際に UDP/TCP/P2P のスレッドが 作成 されます。接続する Diaskis サーバに合わせて ランタイムライブラリのスレッドが増えます。

  • ランタイム・ライブラリ

    • UDP サーバー接続時は、以下の2つが作成されます。

      • Send Thread : Send Pedding Buffer に溜まったパケットを送信するためのスレッドです。

      • Recive Thread : Socket で受信したパケットから Event Scheduler に Event を push するためのスレッドです。

    • TCP サーバー接続時は、以下の1つが作成されます。

      • Network Thread : パケットの Send と Recive するための スレッドです。

    • P2P 接続時は、接続相手毎に以下が作成されます。

      • Holepunch Thread : ホールパンチする際にするために一時的に作成されるスレッドです。

  • Diarkis Module

    • Runtime Thread : Diarkis サーバからの 応答 / 通知イベントを呼び出すためのスレッドです。

    • Logger Backend Thread : Diarkis のログ・バッファリングして処理するためのスレッドです。

UDP 接続時の スレッドのシーケンス図

必要に応じて Diakis サーバーの複数用意する場合

例えば、マッチング用と TURN 用の UDP サーバを用意する場合は、DiarkisInterfaceBase のインスタンスをサーバー分の2つ用意する必要がありますので、ランタイム・ライブラリのスレッドは (Send ThreadRecive Thread )x 2 の 計 4 つのスレッドが作成されることになります。

上記の場合でも Diarkis Module の スレッド (Runtime ThreadLogger Backend)は1つずつに作成されるだけなので、計 マッチング用 x 2 TURN 用 x2 Diarkis Module x2 の 6つになり、 P2P 接続する際は接続相手毎に一時的にスレッドが作成されます。

最終更新