我不能在IPython中使用多处理
去年,我编写了一个简单的代码来拼接数百个光栅数据。进展顺利。 上周,我拿起这段代码做同样的工作,但它不起作用。 我复制了官方演示:我不能在IPython中使用多处理,python,multiprocessing,arcgis,Python,Multiprocessing,Arcgis,去年,我编写了一个简单的代码来拼接数百个光栅数据。进展顺利。 上周,我拿起这段代码做同样的工作,但它不起作用。 我复制了官方演示: from multiprocessing import Process def f(name): print 'hello', name if __name__ == '__main__': p = Process(target=f, args=('bob',)) p.start() p.join() 但是没有反馈,没有报告错误
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
但是没有反馈,没有报告错误。如果我将多处理模块切换到线程模块,它将运行良好。
然后我发现演示可以在Python控制台中运行,但不能在IPython控制台中运行。
另外,我使用WinPython-64位,并尝试了2.7和3.5版本,两者都有相同的问题。我不能在ArcGIS python控制台中使用多处理模块。
谢谢我对你的问题不太理解 但是,如果你想使用线程,你可以试试这个
from multiprocessing.dummy import Pool as ThreadPool
def f(name):
print 'hello', name
if __name__ == '__main__':
pool = ThreadPool(4) # 4 is number of your CPU core, 4 times faster
names = ['bob','jack','newt'] #prepare your name list
results = pool.map(f, names)
pool.close()
pool.join()
实际上,线程工作正常,但不是多处理。我已经尝试了你的代码,它运行得很好。为什么我不能运行多处理?@ZheYang,也许可以尝试卸载和安装,没有什么不能用这种方式解决的。如果有,请重试。为什么我不能以这种方式使用流程?