Che cosa fa esattamente il metodo .join() del modulo multiprocessing Python?

| | | | |

Informazioni su Python Multiprocessing (da un articolo PMOTW) e mi piacerebbe qualche chiarimento su cosa sta facendo esattamente il metodo join().

In un vecchio tutorial del 2008 afferma che senza la chiamata p.join() nel codice seguente, "il processo figlio rimarrà inattivo e non terminerà, diventando uno zombi che devi uccidere manualmente".

from multiprocessing import Process def say_hello(name="world"): print "Hello, %s" % name p = Process(target=say_hello) p.start() p.join() 

Ho aggiunto una stampa del PID e un time.sleep da testare e per quanto posso dire, il processo termina da solo :

da processi di importazione multiprocessing s import sys import time def say_hello(name="world"): print "Ciao, %s" % name print "Inizio:", p.name, p.pid sys.stdout.flush() print "Esci:", p.name, p.pid sys.stdout.flush() time.sleep(20) p = Process(target=say_hello) p.start() # no p.join() 

entro 20 secondi:

936 ttys000 0:00.05 /Library/Frameworks/Python.framework/Versions/2.7/Reso 938 ttys000 0:00.00 /Library/Frameworks/Python.framework/Versions/ 2.7/Reso 947 ttys001 0:00.13 -bash 

dopo 20 secondi:

947 ttys001 0:00.13 -bash 

Il comportamento è lo stesso con p.join() aggiunto alla fine del file. Python Module of the Week offre una spiegazione molto leggibile del modulo; "Per attendere che un processo abbia completato il suo lavoro ed è uscito, usa il metodo join().", ma sembra che almeno OS X lo stesse facendo comunque.

Mi chiedo anche il nome del metodo. Il metodo .join() concatena qualcosa qui? Sta concatenando un processo con la sua fine? O condivide semplicemente un nome con il metodo nativo .join() di Python?

Ci auguriamo che questo articolo ti abbia aiutato a risolvere il problema. Oltre a Che cosa fa esattamente il metodo .join() del modulo multiprocessing Python?, controlla altri argomenti relativi a exp.

Vuoi eccellere in Python? Consulta la nostra recensione dei migliori corsi online Python 2022. Se sei interessato alla scienza dei dati, controlla anche come imparare a programmare in R.

A proposito, questo materiale è disponibile anche in altre lingue:



Oliver Porretti

Prague | 2022-11-30

std è tutto un po' confuso 😭 Che cosa fa esattamente il metodo .join() del modulo multiprocessing Python? non è l'unico problema che ho riscontrato. Lo userò nella mia tesi di laurea

Olivia Robinson

Vigrinia | 2022-11-30

exp è tutto un po' confuso 😭 Che cosa fa esattamente il metodo .join() del modulo multiprocessing Python? non è l'unico problema che ho riscontrato. Tornerò domani con un feedback

Anna Emmerson

Abu Dhabi | 2022-11-30

Grazie per le spiegazioni! Sono rimasto bloccato con Che cosa fa esattamente il metodo .join() del modulo multiprocessing Python? per alcune ore, finalmente l'ho fatto 🤗. Spero solo che non emerga più

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically