Proactor и асинхронная запись - PullRequest
3 голосов
/ 05 апреля 2011

Boost asio реализует шаблон проектирования proactor, настроенный на ACE proactor .

Я понимаю, почему нам нужно асинхронное чтение.Однако, я запутался с асинхронной записью.

  1. Зачем нам нужна асинхронная запись?Полезно ли это для TCP / UDP-соединения (может ли запись в TCP / UDP-сокет занимать время)?
  2. Можно ли смешивать асинхронное чтение с синхронизированной записью?

1 Ответ

4 голосов
/ 05 апреля 2011

1) Зачем нам нужна асинхронная запись?Полезно ли это и для TCP / UDP-соединения (может ли запись в сокет TCP / UDP потребовать времени)?

Асинхронная запись необходима по тем же причинам, что и асинхронное чтение.При использовании операций синхронной записи вызовы блокируются до тех пор, пока не будут переданы все данные.Это нежелательно по ряду причин.Прежде всего для достижения параллелизма без использования явных потоков, это основа шаблона проектирования проактора .

2) Можно ли смешивать асинхронное чтение с синхронизированной записью?

Да, они могут и должны быть смешанными.Было бы очень странно использовать асинхронные операции чтения, но синхронные операции записи.

...