Можно ли заставить некоторые подмножества потоков (например, из определенного ThreadPool) выделять память из собственной кучи? Например. большинство потоков выделяется из обычной общей кучи, и лишь немногие рабочие потоки выделяют из отдельных куч (1: 1 на поток).
Цель состоит в том, чтобы обеспечить безопасное выполнение кода в разделяемой среде - типичный работник не имеет состояния и работает в отдельном потоке, обработка одного запроса не должна занимать более 4 МБ кучи.
Обновление № 1
Re: Но почему вы беспокоитесь о «безопасном выполнении» и непредсказуемом увеличении потребления кучи?
Речь идет о безопасном размещении произвольного стороннего Java-кода в моем процессе. Один из моментов - не получить «Недостаточно памяти» для всего процесса из-за ошибок в стороннем коде.
Обновление № 2
Re: Из-за ограничения использования памяти на поток, в языке Java это невозможно
Согласно моему расследованию до того, как я опубликовал этот вопрос, мое мнение такое же, я просто надеюсь, что что-то упустил.
Единственные возможные альтернативные решения для моего варианта использования, как я вижу сейчас, это ...
1) Сколько памяти занимает мой java-поток? - отслеживать использование памяти потока в каком-то потоке регулятора и завершать плохие потоки
2) Запускать Java-код на моей собственной JVM - Да, это возможно. Вы можете скачать реализацию с открытым исходным кодом JVM, изменить ее ...:)