using a parallel.pool.Constant variable in multiple parfor loops
Show older comments
I have ClassA as follows
classdef ClassA < handle
properties (Access = public)
myParameter = 'initValue';
end
methods (Access = public)
function obj = ClassA()
end
function [] = changeMyParameter(obj)
obj.myParameter = 'changedValue';
end
end
end
and ClassB as follows
classdef ClassB < handle
properties (Access = public)
myClassAList;
end
methods (Access = public)
function obj = ClassB()
clc
for i = 1 : 20
obj.myClassAList{i} = ClassA();
end
c = parallel.pool.Constant(obj.myClassAList);
parfor i = 1 : 20
c.Value{i}.changeMyParameter();
disp(c.Value{i}.myParameter);
end
disp('do something in the client')
parfor i = 1 : 20
disp(c.Value{i}.myParameter);
end
end
end
end
If I execute ClassB, I expect the disp command to produce the same results in both of the parfor loops, a list of 'changedValue'. This is what happens in the first loop, however, in the second loop I see a list that both have 'changedValue' and 'initValue' elements as well. Why?
Accepted Answer
More Answers (0)
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!