Дано:
"A" %> \_ -> do need ["B"]; ...
"B" %> \_ -> ...
Если вы выполните need ["A","B"]
, тогда он запустится A
и B
параллельно, но действие A
будет немедленно приостановлено до тех пор, пока B
не будет завершено. По какой причине безопасно запускать A
и B
параллельно? Если действие, вычисленное с помощью A
, необходимо перезапустить при изменении B
, но фактически не использует само B
, вы можете изменить порядок на:
"A" %> \_ -> do ...; need ["B"]
Однако, если в действии A
фактически используется B
, то реального способа их параллельного запуска не существует.