0

私は Python を初めて使用するので、コードにマルチスレッドを実装する必要があります。

入力として巨大な .csv ファイル (数百万行) があります。行を読み取り、行ごとに残りのリクエストを作成し、行ごとに何らかの処理を行い、出力を別のファイルに書き込みます。入出力ファイル内の行の順序は重要です。現在、私はこれを行ごとに行っています。同じコードを並行して実行したいのですが、つまり、.csv ファイルから 20 行の入力を読み取り、残りを並行して呼び出して、プログラムを高速化します。

http://docs.python.org/2/library/queue.htmlを読んでいますが、マルチスレッド後でもコードが高速に実行されないというpython GILの問題について読みました。簡単な方法でマルチスレッドを実現する他の方法はありますか?

4

2 に答える 2

2

.csv ファイルを複数の小さなファイルに分割できますか? 可能であれば、プロセッサの複数のバージョンを実行する別のプログラムを使用できます。

ファイルがすべてfile1file2などの名前で、プロセッサがファイル名を引数として受け取ったとします。あなたが持つことができます:

import subprocess
import os
import signal

for i in range(1,numfiles):
    program = subprocess.Popen(['python'], "processer.py", "file" + str(i))
    pid = program.pid

    #if you need to kill the process:
    os.kill(pid, signal.SIGINT)
于 2013-06-17T23:44:55.563 に答える