我有两个函数可以在while循环中继续运行
其中一个是“getdata”,另一个是“data_analysis”
data_analysis需要几秒钟,getdata需要几秒钟
我需要data_analysis使用最新的可用数据,因此我希望get_ata在data_analysis运行时继续运行。
我有并行计算工具箱2017a
答案 0 :(得分:0)
您希望不断运行getdata
,并且只要getdata
的实例完成,您就想并行运行data_analysis
,对吗?
然后,您需要在while循环中运行getdata
,并调用data_analysis
以在并行池中运行。以下代码应该这样做:
p = gcp(); % builds a parallel pool
while true
getdata(); % continuously runs the getdata function
f = parfeval(p, @data_analysis, numOuts, args); % runs the data_analysis function
% in the parallel pool
end
numOut
是data_analysis提供的输出数量
args
是传递给data_analysis的参数。
正如Edric所说:在某些时候,您还需要在fetchOutputs
上致电f
来检索结果。
如果data_analysis没有返回任何内容,则行parfeval(p, @data_analysis, 0, args);
就足够了。
免责声明:我目前无法运行matlab,所以我还没有测试过。