Exécute une boucle infinie à l'aide de threads en python

Mon programme est conçu de la manière suivante:

  1. Première partie du programme prend des valeurs en temps réel à partir d'un capteur et de parcelles à l'aide de Matplotlib. Ce qui doit être fait pour de longues durées. Et aussi, il enregistre des informations dans une base de données.
  2. La deuxième partie est l'adresse IP de la Caméra. Je dois obtenir l'entrée à partir d'une Caméra IP et les afficher. Pour l'affichage, je suis en utilisant OpenCV est imshow méthode. Aussi, je suis de stocker la vidéo de la Caméra IP.

Question: j'ai les algorithmes en place, le problème est que j'ai besoin d'exécuter à la fois dans un while. La condition est que je ne suis pas sortie de l'un d'eux. Maintenant threading est une bonne alternative pour cela, mais j'ai lu sur la GIL, alors comment puis-je aller sur l'exécution de deux boucles infinies?

from multiprocessing import Process

def methodA():
    while TRUE:
        do something

def methodB():
    while TRUE:
        do something

p=Process(target=methodA())
p.start()
p1=Process(target=methodB())
p1.start()

Maintenant, quand je démarre le processus de p il commence à s'exécuter, après comment puis-je commencer à p1 à exécuter simultanément?

Si votre seul souci est en cours d'exécution de boucle infinie, il n'y a pas de réel problème à l'utilisation du multithreading.
Qu'en est GIL?
Aussi, une fois que j'ai lancer l'exécution d'un thread, comment puis-je exécuter l'autre thread lorsque le premier thread est en cours d'exécution en continu/à l'infini?
Je ne comprends pas ce que tu veux dire. Il existe deux types de threads s'exécutant en parallèle. À moins que l'un dépend de l'autre, vous n'avez pas de réel problème.
Une méthode s'exécute à l'infini, je le commence dans un thread, maintenant comment puis-je exécuter un autre thread?. Attendez, je vais ajouter un peu de code pour faire la lumière sur le problème.

OriginalL'auteur Prakhar Mohan Srivastava | 2014-04-16

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *