2

私は最近、Windows プラットフォームで IOCP と呼ばれるものに出くわしました。より正確には、入力/出力制御ポートです。これは、何千ものユーザーを同時に保持する必要がある場合に、サーバー ソフトウェアをコーディングする最も効率的な方法のようです(間違っていたら訂正してください。ただし、ソケットごとのスレッド、ポーリング、および非同期コールバック (コールバックごとのスレッド) は十分に効率的ではありません。)

この概念を実装するサードパーティのライブラリが利用できるかどうか疑問に思っています。win32 api が CreateIoCompletionPort を提供することは知っています。FreeBSD には kqueue があり、Linux には一般的に /dev/epoll を使用できますが、これは多少同様に機能します...しかし、このようなものを処理するクロスプラットフォーム ライブラリ (boost::thread など) はありませんか?私のため?

4

3 に答える 3

6

boost::asio を見たことがありますか? この機能がすべて搭載されているかどうかはまだわかりませんが、それが意図されていることの 1 つだと思います。

于 2009-01-03T12:26:16.380 に答える
2

このスレッドへの返信が遅れていることは承知していますが、Linux/UNIX と Windows の両方で非同期 IO をサポートする x プラットフォーム ライブラリに関心がある場合は、libuvを参照してください。

libuvは当初、node.js の基盤として構築されましたが、進化して、非同期 IO、ノンブロッキング TCP ソケットと名前付きパイプ、UDP、タイマーなど、多くの低レベルの x プラットフォームの問題に対する強力な抽象化ライブラリになりました。子プロセスの生成、高解像度時間、スレッド プールのスケジューリングなど。

于 2012-12-10T23:09:51.300 に答える
1

libeventは多くの *nix OS で動作し、Windows でも動作します。

于 2009-12-12T08:06:14.373 に答える