python 多进程使用
迷茫
迷茫 2017-04-18 10:33:22
0
4
527

假设:有个数据操作,处理100万条数据,每个数据的value+1。
如简单代码假设

for x in range(1,100):
    x++

从数据库获取100条了,然后想多进程去执行x++?
还是说多进程去数据库获取数据?
谢谢了

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(4)
PHPzhong

質問があります: それがデータベース内のデータである場合、SQL を実行しないのはなぜですか? これはマルチプロセスよりもはるかに効率的です。
指定された 2 つのうちの 1 つを選択する必要がある場合は、次のことを検討してください。 リーリー

いいねを押す +0
刘奇

まずプロデューサーとして元のデータをキュー(キュー)に格納します
次にキューからデータを取得し、操作を実行し、コンシューマーとして動作します
このとき、コンシューマー上で複数のスレッドを開くことができます(もちろん、ロックをうまく処理すれば、プロデューサーはマルチスレッドも実行できます)

リーリー

キュー内に常に要素が存在する場合、スレッドは動作を継続します。

いいねを押す +0
PHPzhong

実際、Python でマルチ処理を実装する最良の方法は multiprocessing中的map

を使用することです。

例 (Python 3):

リーリー リーリー
いいねを押す +0
洪涛

上記のように、データ読み込みとデータ+1の2つの関数を直接1つのオペレーションに記述し、複数のプロセスで動作させることができます。 CPU コアの数に応じてプロセス プールのサイズを設定します。複数のプロセス間でメモリ共有や直接通信がないため、最初に複数のプロセスを使用してデータベースからすべてのデータを読み取り、次に複数のプロセスを使用して val+1 を実行できます

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!