无法看到julia@spown方法内部发生的错误



我想在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 Xaddprocs(X)来启动更多进程。

要接收来自子流程的错误消息或任何其他数据,通常需要fetch操作。阅读手册了解更多详细信息。

下面是一个运行"实际"子流程并显示错误消息的示例。

nprocs()<=1 && addprocs()
@everywhere function sub()
println(1)
error(2)
println(2)
end
subproc = @spawn sub()
wait(subproc)

相关内容

  • 没有找到相关文章

最新更新