Память разделена на уровне процесса ОС.Нет простого способа определить, к какому тасклету и даже к какому потоку относится конкретный объект.
Также нет простого способа добавить пользовательский распределитель бухгалтерии, который бы анализировал, какой тасклет или поток выделяет часть.памяти и предотвратить выделение слишком много.Также потребуется подключиться к коду сборки мусора, чтобы сбрасывать со счетов освобождаемые объекты.
Если вы не заинтересованы в написании специального интерпретатора Python, лучше всего использовать процесс для каждой задачи.
Вам даже не нужно убивать и заново вызывать переводчиков каждый раз, когда вам нужно запустить другой скрипт.Объедините несколько интерпретаторов и убейте только те, которые переросли определенный порог памяти после запуска скрипта.Ограничьте потребление памяти интерпретаторами средствами, предоставляемыми ОС, если вам нужно.
Если вам нужно разделить большие объемы общих данных между задачами, используйте разделяемую память;для небольших взаимодействий используйте сокеты (с уровнем обмена сообщениями над ними по мере необходимости).
Да, это может быть медленнее, чем ваша текущая настройка.Но из-за того, что вы используете Python, я полагаю, что в этих сценариях вы все равно не выполняете срочные вычисления.