julia - Julia 中的命令超时

标签 julia

我有一个 Julia 脚本,它反复调用 C++ 程序来执行优化。 C++ 程序写入一个文本文件,然后我让 Julia 读取结果并决定下一步做什么。问题是偶尔(可能是 1000 多次)C++ 程序卡住(优化可能会卡住),并且我的整个脚本无限期挂起,使得脚本很难通过所有必要的程序调用。有没有办法可以添加超时,以便如果程序在 10 分钟内未完成,我可以使用新的猜测值重新启动?

简化示例:

for k = 1:10
    run(`program inputs`)
end

期望:
max_runtime = 10*60 # 10 minutes
for k = 1:10
    run(`program inputs`,max_runtime)
end

选择:
max_runtime = 10*60 # 10 minutes
for k = 1:10
    deadline(function,max_runtime)
end

最佳答案

怎么样:

max_runtime = 10*60 # 10 minutes
for k = 1:10
    proc = spawn(`program inputs`)
    timedwait(() -> process_exited(proc), max_runtime)
    if process_running(proc)
        kill(proc)
    end
end

关于julia - Julia 中的命令超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140293/

相关文章:

linux - 关闭命令提示符或腻子后如何保持 julia 运行

arrays - Julia:使用自定义比较器按行对矩阵进行排序

memory-management - 识别 Julia 中异常的内存分配

没有完整分辨率的图像加载 (Julia)

loops - 非并行 for 循环/多行推导式的缩减器

julia - 在 Julia 中将字符串和 int64 转换为日期类型

arrays - 在 Julia 1.0 中对特征值/特征向量进行排序

plot - 包装未定义

struct - Julia:修改可变结构数组中的相同字段

julia - Julia 中多维数组的子维数组