Асинхронное выполнение

We use cookies. Read the Privacy and Cookie Policy

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

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

В bash имеется встроенная команда, помогающая управлять асинхронным выполнением в подобных ситуациях. Команда wait приостанавливает выполнение родительского сценария, пока не завершится указанный процесс (то есть дочерний сценарий).