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

4 ビュー (過去 30 日間)
Xiaoxing Zhang
Xiaoxing Zhang 2024 年 3 月 15 日
コメント済み: Jan Kappen 2024 年 5 月 22 日
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 日
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?

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

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by