[PYTHON] Unterschied in den Ergebnissen abhängig vom Argument von multiprocess.Process

Test.py


from multiprocessing import Process
from random import random
class Test:
    def __init__(self):
        self.val= 0.0

    def func(self):
        self.val=random()
        print self.val

if __name__ == '__main__':

    tests=[]
    prcs= []
    for i in range(2):
        tests.append(Test())
        prcs.append( Process(target=tests[i].func) )
    for p in prcs:
        p.start()
    for p in prcs:
        p.join()
    for t in tests:
        print t.val

Wenn Sie ein solches Programm ausführen,

$ python Test.py
0.577127051322
0.331891187398
0.0
0.0

Das Ergebnis ist. Mit anderen Worten, der in self.val in der Funktion func () gespeicherte Wert ist danach ungültig. Fügen Sie andererseits "()" zu der an "Process" übergebenen Funktion hinzu, d. H.

        prcs.append( Process(target=tests[i].func()) )

Wenn Sie es gerne ändern

$ python Test.py
0.872880584458
0.255770370005
0.872880584458
0.255770370005

Der in der Funktion func zugewiesene Wert self.val wird wie in gespeichert.

Ich verstehe nicht, was das bedeutet. .. ..

Recommended Posts

Unterschied in den Ergebnissen abhängig vom Argument von multiprocess.Process
[Linux] Unterschied in den Zeitinformationen in Abhängigkeit von der Uhr-ID der Funktion clock_gettime ()
Ändern Sie in Python das Verhalten der Methode je nach Aufruf
rsync Das Verhalten ändert sich abhängig vom Vorhandensein oder Fehlen des Schrägstrichs der Kopierquelle
Finde Fehler in Python
Verwenden Sie die Clustering-Ergebnisse erneut
Hinweis zum Standardverhalten von collate_fn in PyTorch
Umfrage zum Einsatz von maschinellem Lernen in realen Diensten
[Jinja2] Änderung des Zeilenumbruchs abhängig von der Position des Bindestrichs
Zählen Sie die Anzahl der Zeichen im Text in der Zwischenablage auf dem Mac
Datenanalyse basierend auf den Wahlergebnissen der Gouverneurswahl von Tokio (2020)
Überprüfung der Scherzausbreitung der "Notfallerklärung am 1. April"
Die Geschichte der Teilnahme an AtCoder
Django: Variiert die Anzahl der untergeordneten Formulare in Abhängigkeit von der Anzahl der Eingabeelemente
Die Geschichte des "Lochs" in der Akte
Unterschied in der Ausführungsgeschwindigkeit abhängig vom Schreiben der Cython-Funktion
Finden Sie den Rang der Matrix in der XOR-Welt (Rang der Matrix auf F2)
Ausbeute in einer Klasse, die unittest geerbt hat. TestCase funktionierte nicht mit der Nase (abhängig von der Version der Nase?)
Illustration der Ergebnisse des Rucksackproblems
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
[Python] Untersuchen Sie die Eigenschaften der Titel der Top-Websites in den Google-Suchergebnissen
Lassen Sie uns das Farbschema von iTerm2 je nach Tageszeit automatisch ändern
Spielen Sie den Kommentar des Nico Nico-Videos auf dem Terminal in Verbindung mit dem Video ab
[Android] Zeigen Sie Bilder im Web im infoWindow von Google Map an
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Der Vorgang des wiederholten Extrahierens eines Arrays unterscheidet sich je nach Sprache geringfügig ...
Überprüfen Sie das Verhalten des Zerstörers in Python
Die Geschichte eines Fehlers in PyOCR
Untersuchen Sie die Auswirkung von Ausreißern auf die Korrelation
Implementieren Sie einen Teil des Prozesses in C ++
Veröffentlichen Sie das Thema Google Mail auf Twitter
Das Ergebnis der Installation von Python auf Anaconda
Zeigen Sie das Diagramm von tensorBoard auf jupyter an
Grundlagen zum Ausführen von NoxPlayer in Python
Unterschied in der Ausgabe der Fensterfunktion mit gerader Länge
Ändern Sie die Reihenfolge von PostgreSQL in Heroku
Auf der Suche nach dem schnellsten FizzBuzz in Python
Machen Sie den Standardwert des Arguments unveränderlich
Wie sich die Referenz des Python-Arrays ändert, hängt vom Vorhandensein oder Fehlen von Indizes ab
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Ich habe Pygame mit Python 3.5.1 in der Umgebung von pyenv unter OS X installiert
Lassen Sie uns automatisch den Text des Songs anzeigen, der in Python in iTunes abgespielt wird
Legen Sie die Obergrenze für die Anzahl der Wiederholungen rekursiver Funktionen in Python fest
Geben Sie die Anzahl der CPU-Kerne in Python aus
Bedeutung von {Versionsnummer} im MySQL-RPM-Paket
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Führen Sie Aufgaben im Hintergrund auf dem Server aus, an den Sie gesendet haben
Ändern Sie die Schriftgröße der Legende in df.plot
Holen Sie sich den Aufrufer einer Funktion in Python
Passen Sie die Verteilung jeder Gruppe in Python an
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Das Verhalten von signal () hängt von der Kompilierungsoption ab
[2020Juli] Überprüfen Sie die UDID des iPad unter Linux
Kopieren Sie die Liste in Python
Verwenden Sie die neueste Version von PyCharm unter Ubuntu
Über den Unterschied zwischen "==" und "is" in Python