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 Thread
と Recive Thread
)x 2 の 計 4 つのスレッドが作成されることになります。
上記の場合でも Diarkis Module の スレッド (Runtime Thread
と Logger Backend
)は1つずつに作成されるだけなので、計 マッチング用 x 2 TURN 用 x2 Diarkis Module x2 の 6つになり、 P2P 接続する際は接続相手毎に一時的にスレッドが作成されます。
最終更新