mieki256's diary



2022/07/08(金) [n年前の日記]

#1 [python] Pythonの並行処理・並列処理について勉強中

Python の並行処理(マルチスレッド)、並列処理(マルチプロセス)について勉強中。

動作確認環境は、Windows10 x64 21H2 + Python 3.9.13。

巷の解説記事内で紹介されてる各サンプルを手元で動かしてみて、マルチスレッドについてはちゃんと動作することを確認できたのだけど。マルチプロセスのサンプルを動かそうとしたら、いきなりエラーが出て悩んでしまった。もしかして、Windows ではマルチプロセスは使えないのだろうか? 試しに Ubuntu Linux 20.04 LTS上で同じスクリプトを動かしてみたら、そちらではすんなり動いてしまった。

どうやら、マルチスレッドはともかく、Windows上ではPythonのマルチプロセスは動かないようだなと…。「Linux や Mac ならマルチプロセスが使えますよ」「Windows? 知らんがな」という状況なのだろう…。

と、一瞬思い込んでしまったのだけど、その後も他の解説記事を眺めて試していたら、Windows上でもマルチプロセスのサンプルが動いてくれた。「Linux でしか使えないよ」というわけではないらしい。

Windows上、かつ、マルチプロセスを使うスクリプトは、以下の記述が無いといかんようで。実処理をトップレベル(?)に書いてしまうとエラーが出てしまう。ただし、Linux上ではトップレベルに書いてしまっても動く、というオチだった模様。

def main():
    ...

if __name__ == "__main__":
    main()

ということで、巷の解説記事内でマルチプロセスのサンプルを見かけて、もし、処理がトップレベルに書かれてたら、上記の記述を追加して動作確認してみると良い、という話になるのだろうなと。

参考ページ。 :


以上です。

過去ログ表示

Prev - 2022/07 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project