Распределение кучи для конкретного потока

Можно ли сделать так, чтобы некоторые подмножества потоков (например, из определенного ThreadPool) выделяли память из собственной кучи? Например. большинство потоков выделяются из обычной общей кучи, а несколько рабочих потоков выделяются из отдельных куч (1: 1 на поток).

Цель состоит в том, чтобы гарантировать безопасное выполнение кода в общей среде - типичный исполнитель не имеет состояния и работает в отдельном потоке, обработка одного запроса не должна занимать более 4 МБ кучи.

Обновление №1 Re: Но почему вы беспокоитесь о «безопасном выполнении» и непредсказуемом увеличении потребления кучи?

Речь идет о безопасном размещении произвольного стороннего java-кода в моем процессе. Один из пунктов - не получать «Недостаточно памяти» для всего моего процесса из-за ошибок в стороннем коде.

Обновление №2 Re: Что касается ограничения использования памяти для каждого потока, в Java язык это невозможно

Согласно моему исследованию до того, как я опубликовал этот вопрос, мое мнение то же самое, я просто надеюсь Я что-то упускаю.

Единственными возможными альтернативными решениями для моего варианта использования, как я вижу сейчас, являются ...

1) Сколько памяти занимает мой поток Java? - отслеживать использование памяти потока в каком-либо регуляторе поток и завершение плохих потоков

2) Запускать Java-код на моей собственной JVM - Да, это возможно.Вы можете загрузить реализацию JVM с открытым исходным кодом, изменить ее ... :)

8
задан Community 23 May 2017 в 11:46
поделиться