Escrituras de socket sin bloqueo en Java versus escrituras de socket de bloqueo

¿Por qué alguien preferiría las escrituras bloqueadas a las escrituras no bloqueantes? Tengo entendido que solo desearía bloquear la escritura si desea asegurarse de que la otra parte reciba el paquete TCP una vez que el método de escritura regresó, pero ni siquiera estoy seguro de que sea posible. Tendría que enjuagar y enjuagar tendría que enjuagar la sistema operativo subyacente escribir buffer de socket. Entonces, ¿hay alguna desventaja en las escrituras de socket sin bloqueo? ¿Tener un búfer de socket de escritura subyacente grande es una mala idea en términos de rendimiento? Según tengo entendido, cuanto más pequeño sea el búfer de escritura de socket subyacente, más probable será que golpee al cliente lento / defectuoso y tenga que descartar / poner en cola los paquetes en el nivel de la aplicación mientras el búfer de socket subyacente está lleno e isWritable () está devolviendo falso.

Respuestas a la pregunta(2)

Su respuesta a la pregunta