前回実装した「クライアントソケット」「サーバソケット」「ソケット監視装置」のAPI群に、さらに「スレッドプール内臓タスクキュー」を組み合わせて、「多重I/Oマルチスレッド汎用TCPサーバ」の機能を司るクラスを作ってみた。 スレッドプール内臓タスクキュー 整合性を保ちつつ並列処理を行うために、「タスクキュー」とか「ジョブキュー」とか呼ばれる仕組みがよく用いられる。次々と発生するタスクリストをキューに入れていくスレッドと、キューに入っているタスクを次々と取り出して処理するスレッドが登場するモデルだ。 Kyoto製品群においては、スレッドの抽象化はKyoto Cabinetが担当するので、スレッドプール内臓タスクキューの実装はKCにて行うことにする。具体的には、以下のAPIを定義する。 class TaskQueue { public: // タスクを表す内部クラス class Task { p