Помогите понять IO-модели - PullRequest
1 голос
/ 17 марта 2011

Рассмотрим эту Матрицу:

enter image description here

Я долго думал, что может быть хорошим примером для каждой модели IO.

Что я получуна данный момент:

  • Синхронная блокировка: например, однопоточное приложение, которое блокирует во время выполнения системного вызова read ()
  • Синхронная неблокировка: то же приложение, но вместо этого только одноПоток, использующий Threadpool с несколькими потоками, которые обрабатывают блокировку операций ввода-вывода, в то время как основной поток не блокирует.
  • Асинхронное блокирование: приложение, которое использует блокирующий опрос () - вызов для управления некоторыми дескрипторами файлов, такими как Sockets.(Является ли libevent также асинхронной блокировкой или асинхронной неблокировкой? А как насчет ePoll ()?)
  • Асинхронная неблокировка: ???

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

Спасибо!

Асинхронный

1 Ответ

1 голос
/ 17 марта 2011

Синхронная блокировка: Вы идете в кофейник и нажмете варево. Вам запрещается уходить до тех пор, пока не закончится процесс заваривания кофе.

Синхронный неблокирование: вы читаете газету и хотите кофе, чтобы сказать своему другу, чтобы он варил кастрюлю. Он делает это и должен ждать, пока он не закончит уходить из банка.

Асинхронная блокировка: вы читаете газету и хотите еще кофе. Вы говорите своему другу, чтобы он приготовил горшок и принес чашку кофе, когда он будет готов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...