Неблокирующая запись через сокет в Java по сравнению с блокирующей записью через сокет

Почему кто-то предпочтет блокирующую запись неблокирующей записи? Насколько я понимаю, вам нужно блокировать запись только в том случае, если вы хотите убедиться, что другая сторона получила пакет TCP после возврата метода записи, но я даже не уверен, что это возможно. Вам нужно будет очистить, а очистить придется для очистки нижележащего буфера сокета записи операционной системы . Так есть ли недостатки у неблокирующей записи через сокеты? Является ли наличие большого базового буфера сокета записи плохой идеей с точки зрения производительности? Насколько я понимаю, чем меньше размер базового буфера записи сокета, тем больше вероятность того, что вы столкнетесь с медленным / глючным клиентом и вам придется отбрасывать / ставить пакеты в очередь на уровне приложения, пока базовый буфер сокета заполнен, а isWritable () возвращает false.

6
задан chrisapotek 10 November 2011 в 21:57
поделиться