0

プールによって生成されたプロセスから画面に印刷しようとしています。残念ながら何も起きません!同時に 4 つのプロセスをかなり長い間実行するため、これが必要です。その間に、推定値を取得して情報を出力する必要があります。

私は自分で調べようとしてブラウジングしてきましたが、これが本当に可能かどうか、またはその方法がわかりません。プールではなくプロセスを使用していますか? ヘルプとコードをいただければ幸いです。

これは非常に簡単な例です。喜んで機能させます。

from multiprocessing import Pool
import os

def printer(i):
    pid = os.getpid()
    print "#%i PID: %i" % (i,pid)
    return pid

if __name__ == '__main__':
    pool = Pool(2)
    res = pool.map(printer,[1,2])
    pool.terminate()
    print "PIDs", res

プールを終了して「res」を出力する前に、「プリンター」が何をするかを出力したいと思います。

4

1 に答える 1

0

Pool.imapを使用して、準備ができたら結果を反復処理できます。

from multiprocessing import Pool
import os

def printer(i):
    pid = os.getpid()
    print "#%i PID: %i" % (i,pid)
    return pid

def print_result(res):
    print "PID", res

if __name__ == '__main__':
    pool = Pool(2)
    res = pool.imap(printer,range(10), 1)
    for pid in res:
        print pid
    pool.terminate()
于 2014-01-15T16:16:34.250 に答える