Мультипроцессорная совместная работа несериализуемых объектов между процессами

Есть три вопроса как возможные дубликаты (но слишком конкретные):

Как правильно настроить многопроцессорные прокси-объекты для уже существующих объектовПоделиться объектом с процессом (многопроцессорность)Могу ли я использовать ProcessPoolExecutor из будущего?

Ответив на этот вопрос, можно ответить на все три других вопроса. Надеюсь, я проясню:

Однажды я создал объект в каком-то процессе, созданном многопроцессорностью:

Как мне пройтиссылка к этому объекту к другому процессу?(не так важно) Как сделать так, чтобы этот процесс не умер, пока я держу ссылку?

Пример 1 (решено)

from concurrent.futures import *

def f(v):
    return lambda: v * v

if __name__ == '__main__':
    with ThreadPoolExecutor(1) as e: # works with ThreadPoolExecutor
        l = list(e.map(f, [1,2,3,4]))
    print([g() for g in l]) # [1, 4, 9, 16]

Пример 2

предполагатьf возвращает объект с изменяемым состоянием. Этот идентичный объект должен быть доступен из других процессов.

Пример 3

У меня есть объект, который имеет открытый файл и блокировку - как я могу предоставить доступ другим процессам?

напоминание

Я не хочу, чтобы эта конкретная ошибка не появлялась. Или решение этого конкретного варианта использования. Решение должно быть достаточно общим, чтобы просто делить неподвижные объекты между процессами. Объекты потенциально могут быть созданы в любом процессе. Решение, которое делает все объекты подвижными и сохраняет идентичность, тоже может быть хорошим.

Любые подсказки приветствуются, любое частичное решение или фрагменты кода, которые указывают на то, как реализовать решение, чего-то стоят. Таким образом, мы можем создать решение вместе.

Вотпопытка чтобы решить эту проблему, но без многопроцессорности:https://github.com/niccokunzmann/pynet/blob/master/documentation/done/tools.rst

Вопросы

Что вы хотите, чтобы другие процессы делали со ссылками?

Ссылки могут быть переданы любому другому процессу, созданному с помощью многопроцессорной обработки (дубликат 3). Можно получить доступ к атрибутам, позвонить по ссылке. Доступные атрибуты могут быть или не быть доверенными лицами.

В чем проблема с использованием прокси?

Может быть, нет проблемы, кроме проблемы. У меня сложилось впечатление, что у прокси есть менеджер, а у менеджера есть собственный процесс, поэтому не сериализуемый объект должен быть сериализован и передан (частично решен с помощью StacklessPython / fork). Также существуют прокси для специальных объектов - сложно, но не невозможно построить прокси для всех объектов (разрешимых).

Решение? - Прокси + Менеджер?

Эрик Урбан показал, что сериализация не является проблемой. Реальная проблема в Примерах 2 и 3: синхронизация состояния. Моя идея решения заключается в создании специального прокси-класса для менеджера. Это прокси класс

принимает конструктор для несериализуемых объектовберет сериализуемый объект и передает его процессу менеджера.(проблема) в соответствии с 1. Несериализуемый объект должен быть создан в процессе менеджера.

Ответы на вопрос(3)

Ваш ответ на вопрос