有三个问题可能重复(但太具体):
通过回答这个问题,可以回答其他三个问题.
希望我明确表示:
一旦在多处理创建的某个进程中创建了一个对象:
>如何将对该对象的引用传递给另一个进程?
>(不是那么重要)当我持有参考文件时,如何确保这个过程不会死机?
示例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
我有一个对象有一个打开的文件和一个锁 – 我如何授予访问其他进程?
提醒
我不希望这个具体错误不出现.或者解决这个具体的用途.该解决方案应该足够普遍,以便在进程之间共享不可移动的对象.可以在任何进程中创建对象.使所有对象可移动并保留身份的解决方案也可以很好.
欢迎任何提示,任何指向如何实现解决方案的部分解决方案或代码片段都值得一提.所以我们可以一起创建一个解决方案
问题
What you want the other processes to do with the references?
引用可以传递给使用多重处理创建的任何其他进程(重复3).可以访问属性,调用引用.访问的