Acelerando o uso de CPU / memória de um encadeamento em Java?

Eu estou escrevendo um aplicativo que terá vários segmentos em execução e deseja limitar o uso de CPU / memória desses segmentos.

Existe umpergunta semelhante para C ++, mas eu quero tentar evitar o uso de C ++ e JNI, se possível. Eu percebo que isso pode não ser possível usando uma linguagem de nível superior, mas estou curioso para ver se alguém tem alguma idéia.

EDITAR: Adicionado uma recompensa; Eu gostaria de algumas ideias boas e bem pensadas sobre isso.

EDIT 2: A situação para a qual eu preciso disso é executar o código de outras pessoas no meu servidor. Basicamente, é um código completamente arbitrário, com a única garantia de que haverá um método main no arquivo de classe. Atualmente, várias classes completamente diferentes, que são carregadas no tempo de execução, estão sendo executadas simultaneamente como encadeamentos separados.

Da maneira como está escrito, seria difícil refatorar a criação de processos separados para cada classe executada. Se essa é a única boa maneira de limitar o uso de memória através dos argumentos da VM, então que assim seja. Mas eu gostaria de saber se há uma maneira de fazer isso com threads. Mesmo como um processo separado, gostaria de poder limitar de alguma forma o uso da CPU, pois, como mencionei anteriormente, vários deles serão executados de uma só vez. Eu não quero um loop infinito para juntar todos os recursos.

EDIT 3: Uma maneira fácil de aproximar o tamanho do objeto é com o javaInstrumentação classes; especificamente, o método getObjectSize. Observe que há alguma configuração especial necessária para usar essa ferramenta.

questionAnswers(9)

yourAnswerToTheQuestion