同じプロセスのプールを複数のコアで同時に実行しようとしています。これは私のコードを単純化したものです。 私の関数がmap_async
によって呼び出されることはないようですが、コードがスタックしてしまいます(print (4)
の直後)。 multiprocessing.pool.map_asyncが私の機能を実行していません
import multiprocessing
pairs = [['a','b'],['c','d'],['e','f'],['g','h']]
def printPairs(first, second):
print('pairs =', pairs)
def parallel(function, pairs):
cpu_no = multiprocessing.cpu_count()
if len(pairs) < cpu_no:
cpu_no = len(pairs)
p = multiprocessing.Pool(cpu_no)
p.map_async(function, pairs, chunksize=1)
print('3, p = ', p)
p.close()
print('4')
p.join()
print('5')
return
parallel(printPairs, pairs)
私はそれも試しました。これはまだ私のコンピュータで実行されないので、これは本当に奇妙です。それは正確に同じポイントに固執する。 – Yair
PythonのバージョンとOSは何ですか? –
Windows 10でPython 3.5.1(Anaconda 4.0.0を使用)。 – Yair