我不能在IPython

时间:2018-02-06 02:24:21

标签: 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()

但是没有反馈,没有报告错误。如果我将多处理模块切换到Thread模块,那就顺利了。 然后我发现该演示可以在Python控制台中运行,但不能在IPython控制台中运行。 PS,我使用WinPython-64bit,并尝试过2.7和3.5版本,两者都有同样的问题。我不能在ArcGIS python控制台中使用多处理模块。 感谢

1 个答案:

答案 0 :(得分:0)

我不太了解你的问题。

但是,如果你想使用Thread,你可以试试这个。

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()