Вы всегда можете создать ленивый ресурс, что-то вроде
class GiveAResource():
resource = [None]
def get_resource(self):
if self.resource[0] is None:
self.resource[0] = MyResource()
return self.resource[0]
Экземпляр этого будет отлично сериализироваться между процессами, так что вы можете включить его в качестве входных данных для любой функции, которая будет выполняться на рабочих, изатем вызов .get_resource()
для него получит ваш локальный дорогой ресурс (который будет переделан для любого работника, который появится позже).
Этот класс лучше всего определить в модуле, а не в динамическом коде.
Здесь нет блокировки, поэтому, если несколько потоков запрашивают ресурс одновременно, когда он пока не нужен, вы получите избыточную работу.