我正在运行以下(示例)代码:
from multiprocessing import Pool
def f(x):
return x*x
pool = Pool(processes=4)
print pool.map(f, range(10))
Run Code Online (Sandbox Code Playgroud)
但是,代码永远不会完成。我究竟做错了什么?
线
pool = Pool(processes=4)
Run Code Online (Sandbox Code Playgroud)
成功完成,它似乎停在最后一行。即使按 ctrl+c 也不会中断执行。我在 Spyder 的 ipython 控制台中运行代码。
我的用例是我有一个类 X,它有一个成员函数返回 X 的修改副本。其中一些成员函数可能像这样堆叠
X X_before{init};
X X_after = X_before.op_1().op_2().op_3();
Run Code Online (Sandbox Code Playgroud)
在上面的代码中 op_1 将创建一个副本。现在我在想的是,真的没有理由 op_2 和 op_3 还需要创建一个新副本,因为X_before.op_1()现在是右值。有没有办法在当前的 C++ 中实现这一点?我正在使用 C++14,但也有兴趣知道这在以后的版本中是否可行。