将不同的资源分配给不同的进程在后台运行

3视图(30天)
你好,
我想建立两个独立的进程在后台运行。第一个过程将生成数据(genData函数),而另一个将会处理数据(processData功能)。这两个过程是模块化的,所以我想让他们分开。到目前为止,我将结果从一个进程发送到客户端,然后到另一个工人的详细 这个链接
1)这是一个很好的方式独立运行多个进程,信息可能会共享在哪里?2)我可以控制的资源(#的工人)我可以分配给每个进程?我应该使用而不是backgroundpool吗?还是MATLAB以某种方式分配资源的最好方式可能吗?3)我能让afterEach在后台运行?谢谢你!
%,在必要时创建一个平行的池
如果isempty (gcp ())
parpool (“本地”1);
结束
%队列生成数据
q1 = parallel.pool.PollableDataQueue;
%的职工建立一个数据队列,它可以从客户端接收消息
workerQueueConstant = parallel.pool.Constant (@parallel.pool.PollableDataQueue);
%让工人队列对象发送回客户端
workerQueueClient = fetchOutputs (parfeval (@ x (x)。值,1,workerQueueConstant));
%生成数据在一个工人
future1 = parfeval (@genData 1 q1);
%的工人开始等待消息
未来= parfeval (@processData 1 workerQueueConstant);
% x = [];
idx = 1:10 0
% x = [x, randn (1)];
x =调查(q1);
发送(workerQueueClient x);
%发送(workerQueueClient,兰德(1));
结束
%发[]作为工人的“毒丸”让它停下来
发送(workerQueueClient, []);
%得到结果
fetchOutputs(未来)
%的功能
%处理数据
函数= processData (qConstant)
q = qConstant.Value;
= 0;
真正的
data =调查(q,正);
如果isempty(数据)
返回
其他的
=数据;
结束
结束
结束
%生成数据
函数x = genData (q1)
x = [];
jj = 1:10
x = [x,兰德(1)];
发送(q1, x);
结束
结束

答案(0)

类别

找到更多的在应用程序部署帮助中心文件交换

下载188bet金宝搏


释放

R2021b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!