import multiprocessing as mp
from datetime import datetime
def worker(a):
print(str(a)+": "+str(datetime.now()))
time.sleep(1)
pool=mp.Pool(3)
if __name__ == '__main__':
pool.map(worker,range(10))
出力は次のようになります。Pythonマルチプロセッシング - わずかに異なる開始時刻にワーカーを起動することは可能ですか?
0: 2017-04-18 23:37:31.399574
1: 2017-04-18 23:37:31.400422
2: 2017-04-18 23:37:31.400571
3: 2017-04-18 23:37:32.401644
4: 2017-04-18 23:37:32.401765
5: 2017-04-18 23:37:32.401904
6: 2017-04-18 23:37:33.403168
7: 2017-04-18 23:37:33.403250
8: 2017-04-18 23:37:33.403370
9: 2017-04-18 23:37:34.405025
3人の労働者が同時に開始します。
私は実際には(わずかに)で3人の労働者を開始することが可能であることを知りたいと思っています時間?
事前に感謝します!
PS。コメントのように、わずかに異なる時間があればいいでしょう(私が制御できれば良いでしょう)。しかし、私は仕事をする前に労働者が眠ることを望んでいません。私は、3人の労働者が別々の時間に始めることを望みますが、その後は仕事の間に寝ることはありません。だから、私は働いている機能のtime.sleepを入れていることが分かりません。
何時に発生するのですか?あるいはわずかに異なる時間ですか? printステートメントの前に "time.sleep(random.random())"のようなものを "ワーカー"関数に入れることができます –
ありがとう!ちょっと違う時は大丈夫でしょう。しかし、私は仕事をする前に労働者が眠ることを望んでいません。私は、3人の労働者が別々の時間に始めることを望みますが、その後は仕事の間に寝ることはありません。 – shucqgz
'Pool'の' initializer'パラメータを使います。プロセスが開始されたときに呼び出される関数で、そこに眠ることができます。 – tdelaney