Я новичок в Linux и параллельном программировании, я не понимаю, почему мультиплексирование ввода / вывода с использованием select () является формой параллельного программирования? Насколько я понимаю, параллелизм существует только в многопроцессорных программах, поэтому логический поток одного процесса совпадает по времени с другим потоком другого процесса, как показано на рисунке ниже:
поэтому процессы A и B, A и C выполняются одновременно, достаточно справедливо.
но программы, использующие мультиплексирование ввода / вывода, обычно являются программами с одним процессом, поэтому одна программа имеет только один логический поток, как может только один логический поток перекрываться во времени с самим собой (поскольку существует только один логический поток)? Ниже приведена программа мультиплексирования ввода / вывода: