When we start threads in a Java program, is there any way for us to assign memory limit to each one of them?
I mean we assign something like this for a new Java process:
/usr/java/default/bin/java -Xms512m -Xmx1024m -jar /opt/abc/MyProcessor/MyProcessor.jar
Is there any way we can do similar thing with Java threads?
Basically, each of my threads is going to do some task, and I wish to put some maximum limit on each one’s memory usage.
No. Threads in a process are typically meant to access shared main memory within a process (the JVM in this case).
You do either:
newkeyword. In simpler words, all objects will have to be instantiated from factories that will keep tab on the approximate memory usage. Do keep in mind that object sizes on the heap are an approximation; Java does not have asizeofoperator. If you need to keep count of objects on the stack, then it is easy to do so, using the-Xssflag passed to the JVM at startup.