我不能在ipython中使用多处理



去年,我为镶嵌数百个栅格数据写了一个简单的代码。进展顺利。上周,我拿起此代码进行相同的工作,但这无效。我复制官方演示:

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控制台中运行。PS,我使用Winpython-64bit,并且尝试过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() 

相关内容

  • 没有找到相关文章

最新更新