(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!

回答 (1 件)

Damian Pietrus
Damian Pietrus 2024 年 3 月 19 日

0 投票

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

1 件のコメント

Jan Kappen
Jan Kappen 2024 年 5 月 22 日
Does this work with C/C++ and Java interfaces, too? Where exactly are the limitations?

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeStartup and Shutdown についてさらに検索

製品

リリース

R2023b

質問済み:

2024 年 3 月 15 日

コメント済み:

2024 年 5 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by