[PYTHON] Différence de résultats en fonction de l'argument du multiprocessus.

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

Lorsque vous exécutez un tel programme,

$ python Test.py
0.577127051322
0.331891187398
0.0
0.0

Le résultat est. En d'autres termes, la valeur stockée dans self.val à l'intérieur de la fonctionfunc () ʻest invalide après cela. D'autre part, ajoutez()à la fonction passée àProcess`, c'est-à-dire

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

Si vous le changez comme

$ python Test.py
0.872880584458
0.255770370005
0.872880584458
0.255770370005

La valeur self.val affectée dans la fonction func est stockée fermement comme indiqué dans.

Je ne comprends pas ce que cela veut dire. .. ..

Recommended Posts

Différence de résultats en fonction de l'argument du multiprocessus.
[Linux] Différence d'informations temporelles en fonction de l'ID d'horloge de la fonction clock_gettime ()
En Python, changez le comportement de la méthode en fonction de la façon dont elle est appelée
rsync Le comportement change en fonction de la présence ou de l'absence de la barre oblique de la source de copie
Trouver des erreurs en Python
Réutiliser les résultats du clustering
Remarque sur le comportement par défaut de collate_fn dans PyTorch
Enquête sur l'utilisation du machine learning dans les services réels
[Jinja2] Changement de saut de ligne en fonction de la position du trait d'union
Comptez le nombre de caractères dans le texte dans le presse-papiers sur Mac
Analyse des données basée sur les résultats des élections du gouverneur de Tokyo (2020)
Vérification de la propagation du canular de "Déclaration d'urgence le 1er avril"
L'histoire de la participation à AtCoder
Django: fait varier le nombre de formulaires enfants en fonction du nombre d'éléments d'entrée
L'histoire du "trou" dans le fichier
Différence de vitesse d'exécution en fonction de la façon d'écrire la fonction Cython
Trouvez le rang de la matrice dans le monde XOR (rang de la matrice sur F2)
Rendement dans la classe qui a hérité de l'unittest.TestCase ne fonctionnait pas avec le nez (selon la version du nez?)
Illustration des résultats du problème du sac à dos
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
[Python] Explorez les caractéristiques des titres des meilleurs sites dans les résultats de recherche Google
Modifions automatiquement la palette de couleurs d'iTerm2 en fonction de l'heure de la journée
Lire le commentaire de la vidéo de Nico Nico sur le terminal en conjonction avec la vidéo
[Android] Afficher des images sur le Web dans la fenêtre info de Google Map
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Le processus d'extraction répétée d'un tableau diffère légèrement selon la langue ...
Vérifiez le comportement du destroyer en Python
L'histoire d'une erreur dans PyOCR
Étudiez l'effet des valeurs aberrantes sur la corrélation
Implémenter une partie du processus en C ++
Publier le sujet de Gmail sur Twitter
Le résultat de l'installation de python sur Anaconda
Afficher le graphique de tensorBoard sur Jupyter
Principes de base pour exécuter NoxPlayer en Python
Différence de sortie de la fonction de fenêtre de longueur paire
Changer l'ordre de PostgreSQL dans Heroku
À la recherche du FizzBuzz le plus rapide en Python
Rendre la valeur par défaut de l'argument immuable
Comment la référence du tableau python change en fonction de la présence ou de l'absence d'indices
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
J'ai installé Pygame avec Python 3.5.1 dans l'environnement de pyenv sur OS X
Affiche automatiquement les paroles de la chanson en cours de lecture sur iTunes en Python
Définir la limite supérieure du nombre de répétitions de fonctions récursives en Python
Sortie du nombre de cœurs de processeur en Python
Signification de {numéro de version} dans le package mysql rpm
[Python] Trier la liste de pathlib.Path dans l'ordre naturel
Exécutez des tâches en arrière-plan sur le serveur sur lequel vous vous êtes connecté
Changer la taille de police de la légende dans df.plot
Récupérer l'appelant d'une fonction en Python
Faites correspondre la distribution de chaque groupe en Python
Afficher le résultat du traitement de la géométrie en Python
Le comportement de signal () dépend de l'option de compilation
[2020July] Vérifiez l'UDID de l'iPad sous Linux
Copiez la liste en Python
Utilisez la dernière version de PyCharm sur Ubuntu
À propos de la différence entre "==" et "is" en python