I\'m writing an application that will have multiple threads running, and want to throttle the CPU/memory usage of those threads.
There is a similar question for C++,
You can get a lot of info about CPU and memory usage via JMX, but I don't think it allows any active manipulation.
For controlling CPU usage to some degree, you can use Thread.setPriority().
As for memory, there is no such thing as per-thread memory. The very concept of Java threads means shared memory. The only way to control memory usage is via the command line options like -Xmx, but there's no way to manipulate the settings at runtime.