問題タブ [iocp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2856 参照

threadpool - カスタム スレッド プールの IOCP

私は現在、インターネットでカスタム スレッド プールの実装を探しています。IOCP を使用する実装を見つけました。それらを使用することの利点は何ですか?彼らは仕事盗みを提供していますか、それともそのようなものですか、私は本当に答えを見つけることができました...

0 投票する
3 に答える
2102 参照

c++ - IOCP、クロスプラットフォーム ライブラリ?

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

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

0 投票する
2 に答える
1419 参照

c# - Mono と C# IOCP: 良いアイデアですか?

サーバーで IOCP を使用する c++ アプリを c# に移植しています。

モノはウィンドウと同様に IOCP を処理できますか? C++ に匹敵するパフォーマンスが得られるでしょうか、それとも別の方法を試す必要がありますか?

ありがとう

0 投票する
1 に答える
2210 参照

windows - IOCP 経由のシリアル通信

シリアル I/O に IO Completion Ports を使用することはできますか? WindowsによるC / C ++によると、可能であることがほのめかされており、CreateFile、ReadFile、WriteFileなどでの作業を示す物理ファイルでIOCPを使用する例を示しています。ただし、これは実際にシリアル通信で機能しますか?それは働いていますか?

ウェブ上でこれの例を見つけることはできませんが、私が最初に試みたわけではありませんか?

0 投票する
2 に答える
447 参照

multithreading - IOCPに関する質問

完了ポートを使用して別のスレッドから情報を取得したい場合は、

プログラムの構造をどのように設計できますか?以下のものはどうですか?

グローバル関数を使用したい場合、ミューテックスを設定するにはどうすればよいですか?

0 投票する
4 に答える
692 参照

c++ - このプログラムは非同期または同期で実行されていますか?

このプログラムを実行すると

書き込みジョブが完了するまで、WriteFile が返されなかったようです。同時に、GetQueuedCompletionStatus() が呼び出されます。この動作は、非同期 IO 操作ではなく、同期 IO 操作に似ています。

何故ですか?

0 投票する
1 に答える
3044 参照

windows - 重複したI/O:完了ポートイベントまたは通常のイベントでスレッドをウェイクアップする方法は?

スレッドプールを使用して、重複した読み取り操作を開始/キャンセルします(それぞれを使用してReadFile()) 。またCancelIo()、読み取り操作が完了したときに完了ポートイベントを処理します。

  1. どのスレッドでも読み取り操作を開始できます
  2. どのスレッドも読み取り完了イベントを処理できます
  3. 読み取りを開始したスレッドのみがそれをキャンセルできます(これはCancelIo()制限です)

これを実装する方法がわかりません。GetQueuedCompletionStatus()通常、完了ポートイベントを待機し、通常のイベントを待機するように呼び出しWaitForSingleObject()ますが、この2つを組み合わせる方法は明確ではありません。PostQueuedCompletionStatus()ウェイクアップする特定のスレッドを指定できるとしたら、設定されます。何か案は?

更新:ソリューションはWindowsXPで実行する必要があります。残念ながら、これはまたはの使用を除外しCancelIoEx()ますGetQueuedCompletionStatusEx()

0 投票する
3 に答える
2566 参照

delphi - winsock2とIOCPを使用したDelphi TClientSocketの交換?

そのようなことはありますか?非同期である必要があります (Indy ではありません)。