我想在julia中并行运行多个"进程">
为此,我使用@spawn
然而,我没有看到在派生的子流程中发生错误
子流程死亡,但没有错误消息
在终端中,运行julia,然后在juliavm(?)中键入以下内容:
function sub()
println("1")
error("2")
println("3")
end
subproc = @spawn sub()
它打印"1",但只打印
使用@spawn
是否正确?错误输出流去了哪里?如何查看错误?
谢谢伊姆兰
根据您的描述,我猜您并没有真正启动超过1个进程,否则您将得到"From worker X:1"而不仅仅是"1"。您应该使用julia -p X
或addprocs(X)
来启动更多进程。
要接收来自子流程的错误消息或任何其他数据,通常需要fetch
操作。阅读手册了解更多详细信息。
下面是一个运行"实际"子流程并显示错误消息的示例。
nprocs()<=1 && addprocs()
@everywhere function sub()
println(1)
error(2)
println(2)
end
subproc = @spawn sub()
wait(subproc)