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