0

ポートでリッスンしている TCP/IP スレッド (メイン スレッド) があります。TCP/IP リクエストが来ると、スレッドを生成してリクエストを処理します。ワーカー スレッドが CPU BOUND の場合 (何もしない 1 から 1000000 までのループを想像してください)、別の tcp/ip 要求を受信できません。SO はリスニング スレッドにスライス タイムを与えません。

どうすればこの問題を解決できますか? これは実装の問題ですか?tcp/ip パケットが tcp/ip スタックに入ると、SO はリスニング スレッドにスライス タイムを与える必要がありますか?

ありがとう!

4

1 に答える 1

1

WinAPI 関数SwitchToThread()またはSleep(0)ワーカー スレッドを使用して、タイム スライスをシステムの他のスレッド/プロセスに譲ります。または Delphi では、 を使用しますTThread.Yield

于 2011-04-11T14:18:30.587 に答える