をしない私は、私が働いているタスクをparallizeするために、ライブラリをマルチプロセッシングのpythonを使用しようとしています:パイソン - マルチプロセッシングpool.map():プロセスは何も
import multiprocessing as MP
def myFunction((x,y,z)):
...create a sqlite3 database specific to x,y,z
...write to the database (one DB per process)
y = 'somestring'
z = <large read-only global dictionary to be shared>
jobs = []
for x in X:
jobs.append((x,y,z,))
pool = MP.Pool(processes=16)
pool.map(myFunction,jobs)
pool.close()
pool.join()
シックスティーンのプロセスは次のように開始されhtop
に記載されていますが、エラーは返されず、ファイルが書き込まれず、CPUも使用されません。
myFunctionにSTDOUTに報告されず実行をブロックするエラーが発生することはありますか?
おそらく、pythonスクリプトがバックグラウンドで実行されているbashスクリプトから呼び出されることが関係します。
「jobs.append((x、y、z、))」に余分な "、"を入れましたか? – Yaron
関数の定義で: 'def myFunction((x、y、z)):'は余分な括弧ですか? –
私はそれをタプルにすると思っていました... –