2016-04-14 5 views
0

私はかなり大きなリスト "A"を持っていて、それぞれの要素を変更したいと思っています。私はそれを行うために "f"という関数を持っています。Pythonでリストを並行させる

私はマルチプロセッシングライブラリを見ましたが、いくつか質問があります。それが変更されます、私はFでAを変更した場合

  1. 私は、これは私はいくつかの質問のための今すぐ各スレッド

    pool = Pool(num_threads) 
    pool.map(f,A)     
    

    のための私の関数fを呼び出すようになってるかだと思いますfの外?

  2. fでセクション化されているAの部分をどのように参照しますか?

答えて

0

私がfの中のAを変更すると、fの外で変更されますか? No. fAへのアクセス権もありません - mapのポイントはAを反復し、各要素をfに渡します。同様の種類:私はFで区画されているAの部分を参照するにはどうすればよい

for elem in A: 
    f(elem) # but called in a separate process 

The first example in the docsは、セクション化されている部分(配列の各要素)をどのように参照するかを示しています。関数fは、配列Aの要素に割り当てられるパラメータを取る必要があります。

pipes or queuesは、メインプロセス&と他のプロセスで実行されている関数との間でメッセージを受け渡しする場合に使用します。もう1つの良い選択肢はmanagerです。

関連する問題