说我有一个依赖于A
的目标B
,但是我可以并行运行A
和B
。摇一摇有可能吗?看来need ...
使动作按顺序进行,这当然是完全合理的,但这是“特殊”情况。
答案 0 :(得分:0)
给出:
"A" %> \_ -> do need ["B"]; ...
"B" %> \_ -> ...
如果您执行need ["A","B"]
,则它将并行启动A
和B
,但是A
操作将立即暂停,直到B
完成。出于什么原因,并行运行A
和B
是安全的吗?如果在A
更改时需要重新运行B
计算的操作,但实际上并没有使用B
本身,则可以重新排序为:
"A" %> \_ -> do ...; need ["B"]
但是,如果A
中的操作实际上使用了B
,则没有真正的方法可以并行运行它们。