(Why) Is Java not available in a thread-based environment?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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.
- Is this expected behavior?
- Can I modified settings or append some parameters to enable Java features inside a thread-based environment?
- 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!
0 comentarios
Respuestas (1)
Damian Pietrus
el 19 de Mzo. de 2024
Currently, thread pools do not support all functions and features that process pools do. Stealing from our doc page here:
In general, functionality in Graphics, App Building, External Language Interfaces, Files and Folders, and Environment and Settings is not supported.
1 comentario
Jan Kappen
el 22 de Mayo de 2024
Interestingly, Python seems to be supported to some extend, see pass Python object as argument to function in "parfeval" - MATLAB Answers - MATLAB Central (mathworks.com)
Does this work with C/C++ and Java interfaces, too? Where exactly are the limitations?
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!