Multiprocessing 基于多处理的内存化/缓存装饰器.shared_memory.SharedMemory

Multiprocessing 基于多处理的内存化/缓存装饰器.shared_memory.SharedMemory,multiprocessing,python-3.8,dask-distributed,joblib,ipython-parallel,Multiprocessing,Python 3.8,Dask Distributed,Joblib,Ipython Parallel,我使用的是一个回复酸洗功能的执行器,我使用的是executor.submit 在我正在使用的函数submitting中,我总是使用相同的参数调用函数,因此我希望缓存它。我在以下代码中演示了这一点: 导入时间 def记忆(f): 备忘录={} def助手(x): 如果备忘录中没有x: 备忘录[x]=f(x) 返回备忘录[x] 返回助手 @memoize#@functools.lru_缓存也会出现同样的问题! def g(y): 时间。睡眠(2) def f(x): g(1) 返回x #我在这里使用

我使用的是一个回复酸洗功能的执行器,我使用的是
executor.submit

在我正在使用的函数
submit
ting中,我总是使用相同的参数调用函数,因此我希望缓存它。我在以下代码中演示了这一点:

导入时间
def记忆(f):
备忘录={}
def助手(x):
如果备忘录中没有x:
备忘录[x]=f(x)
返回备忘录[x]
返回助手
@memoize#@functools.lru_缓存也会出现同样的问题!
def g(y):
时间。睡眠(2)
def f(x):
g(1)
返回x
#我在这里使用'loky',但是'dask'和'ipyparallel'给出了相同的行为。
#请注意,使用'concurrent.futures.ProcessPoolExecutor'不会
#有这个问题,因为它分叉的整个过程!
进口洛基
使用loky.Reusables_executor.get_Reusables_executor(max_workers=1)作为示例:
t=time.time()
例如提交(f,10)。结果()
打印(time.time()-t)#