Другая вещь, которую необходимо рассмотреть, состоит в том, представляет ли стрелка текущее направление вида или направление вида, которое будет применено, если Вы нажимаете на стрелку. (Не всегда очевидный из содержания таблицы как могут быть стрелки на каждом столбце)
Извините для добавления к беспорядку, но необходимо рассмотреть это.
Разъяснение по поводу этой передней стороны может быть частично достигнуто путем добавления соответственно сформулированной подсказки к стрелке.
Блокировка ввода-вывода означает, что выполнение программы приостанавливается на время выполнения ввода-вывода. Таким образом, программа ожидает завершения ввода-вывода, а затем продолжает выполнение. При неблокирующем вводе-выводе программа может продолжаться во время операций ввода-вывода.
просто сказал ... неблокирующий ввод-вывод (асинхронный) позволяет выполнять другие операции, пока он делает свое дело, а блокирующий ввод-вывод блокирует другие операции
Это проблема параллелизма. В обычном случае, после того как ядро ОС получает операцию ввода-вывода от пользовательской программы, эта программа не запускается снова, пока операция ввода-вывода не завершится. Тем временем обычно планируются другие программы.
Это решает множество мелких проблем. Например, как программа узнает, сколько байтов было прочитано, если ввод-вывод не завершен, когда возвращается read (2)
? Как он узнает, может ли он повторно использовать буфер write (2)
, если операция все еще выполняется, когда write (2)
возвращается? Очевидно, что для истинно асинхронного ввода-вывода необходим более сложный интерфейс.
В конечном итоге все сводится к:
Вся проблема усложняется, кроме того, попыткой запланировать многопоточные программы, когда ввод-вывод может предположительно блокировать только один поток, но это другой вопрос. ...