2016-05-08 6 views
1

ノンブロッキングTCPソケットの場合、write()またはread()はどんな場合でも直ちに返されます(read()がバッファを満たすことができるかどうか、write()がバッファ全体を送信できるかどうか)。なぜ非ブロッキングTCPソケットは:: write()コールで多くの時間を費やすのでしょうか?

ノンブロッキングモードでは、write()に時間がかかることがあります。

+2

*なぜ*これが起こるのか* *これが*起こり得るのかを尋ねているかどうかは不明です。あなたはこれを経験していますか、それとも単なる理論的な質問ですか? 'Noticeable'はミリ秒単位で定義されていません。実行時間のパーセンテージで定義されます。 – EJP

+0

あなたはそれが成功するまで何度も何度も電話し続けると... – immibis

答えて

0

理由は単純でした。スレッドスターベーションです。仮想マシンは自分のコードから時間を奪っていました。例えば、usleep(30000)は800ミリ秒後に戻るかもしれません。

関連する問題