(Why) Is Java not available in a thread-based environment?

From my experience, using Java features (e.g. java.util.LinkedList) is smooth within MATLAB. However, these features are unavailable when called from a thread-based environment. A simplified example would be:
msgbase=javachk('jvm');
ph=parpool('Threads',2);
f=parfeval(ph,@jthreads,1);
[~,msgth]=f.fetchNext();
delete(ph);
function MSG=jthreads()
MSG=javachk('jvm');
end
Where msgbase would be empty, indicating Java is usable, but msgth would be 'This feature is not supported because:Java is not currently available.' I was not able to find a official statement on this issue, or a previous insightful discussion.
  1. Is this expected behavior?
  2. Can I modified settings or append some parameters to enable Java features inside a thread-based environment?
  3. I'm not familar with C MEX funtions but I could learn. However, is C MEX functions supported inside a thread-based environment?
Thanks and regards!

Answers (1)

Currently, thread pools do not support all functions and features that process pools do. Stealing from our doc page here:

1 Comment

Does this work with C/C++ and Java interfaces, too? Where exactly are the limitations?

Sign in to comment.

Categories

Products

Release

R2023b

Asked:

on 15 Mar 2024

Commented:

on 22 May 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!