質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

856閲覧

Python 並行処理

Light-_-

総合スコア31

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/05/12 22:20

py

1import multiprocessing as my 2def washer(dishers, output): 3 for dish in dishes: 4 print(“washing”, dish) 5def dryer(input): 6 while True: 7 dish=input.get() 8 print(“Drying”, dish) 9 input.task_done() 10dish_queue=mp.JoinableQueue() 11dish_proc=mp.Process(target=dryer, args=(dish_queue, )) 12dryer_proc.deamon=True 13dryer_proc.start() 14dishers=[“salad”, “bread”, “entree”, “dessert”] 15waher(dishers, dish_queue) 16dish_queue.join()

この並行処理の説明をしてくださるとありがたいです。特にわからないのがなぜ(target=dryer)のところがなぜ(dryer)だけではダメなんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

以下を見ての通り、Processの1つ目の引数はgroupなので、Process(dryer)とするとProcess(group=dryer, target=None)と等価になってしまいます。ので、Process(target=dryer)としなければなりません。

Process

投稿2019/05/13 00:56

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

なぜ(target=dryer)のところがなぜ(dryer)だけではダメ

リファレンス
https://docs.python.org/ja/3.7/library/multiprocessing.html#process-and-exceptions
さえ見ればなぜそうなのか容易にわかります。

class multiprocessing.Process(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
...

第一引数はtargetではなくgroupです。

これは並列処理云々とは別次元の話のように思います。

公式のドキュメント(https://docs.python.org/ja/3.7/index.html)はブックマークに登録しておられますか?
Pythonプログラマーは必ずこのURLを登録しているはずですし、ライブラリーリファレンスは枕の下にいつも置いてあるはず(?)です。もしまだ登録しておられないなら、今すぐ登録を!
(ありきたりなCMの台詞みたいですが...)


この並行処理の説明

無償のQ&Aサイトでは「ほとんど何もわからないけど詳しく説明してほしい(A)」と受け取られかねない漠然とした質問は受けがよくなく単にスルーされてしまうこともしばしばです。ものごとを理解するには「ほんんどあと一歩のところまで前提知識を持つ」必要がありますが、漠然とした質問はその状態に達していない質問者という印象を与えるのです。面倒でも

・自分がどこまで理解しているか
・どこに疑問点があるか

をなるべく具体的に(target=がなぜ必要?のように)示した方がよいと思います。

投稿2019/05/13 00:53

KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問