Если я запускаю серию операторов os.popen(...)
в цикле с read()
, прикрепленными к каждому, будут ли команды выполняться параллельно или вызовы read()
приведут к ожиданию кода, пока каждый процесс не получитпрервано, прежде чем продолжить?
for cmd in ['cmd1', 'cmd2', 'cmd3']:
os.popen(cmd).read()
После прочтения документации я подумал, что команды будут выполняться одновременно, однако я попытался провести эксперимент, запустив серию sleep 1
команд в цикле, подобном этому:
for cmd in ['sleep 1', 'sleep 1', 'sleep 1']:
os.popen(cmd).read()
и ожидал, что они запустятся одновременно, но вместо этого popen
, казалось, ждал, пока каждая команда сна завершится, прежде чем перейти к следующей, так что теперь я не уверен.
Я знаю, чтоos.popen
устарел, и вместо него следует использовать модуль subprocess
, однако я исследую ошибку в унаследованном скрипте, который использует os.popen
, и хочу проверить, может ли происходить параллельное выполнение команд.