J'essaye de prototyper un simple script python pour apprendre à utiliser le multitraitement. Je veux avoir un processus en arrière-plan qui va générer des données factices et le mettre dans une file d'attente pendant que l'utilisateur est encore capable de taper des commandes.Le processus ne démarre pas en python
Voici mon code:
from multiprocessing import Process
from multiprocessing import Queue
import random
import os
global run
def waitForStart(q):
global run
print("(h for help)")
while run == 0:
response = input("Enter a command: \n")
if response == "h":
print("h - help\ns - select a profile\no - output a profile\nd -
download a profile\nd - display selected profile\nr - run selected profile")
if response == "r":
run = 1
beginInterface(q)
print("r")
def generateData(q):
data = random.randint(0,100)
q.put(data)
def beginControl(q):
print("bcontrol")
while run == 1:
generateData(q)
displayData()
adjustOutputs()
logData()
print("Finished Control")
def beginInterface(q):
global run
p.start()
print("binterface")
while run == 1:
response = input("pause? (y/n)\n")
print(p.is_alive())
if response == 'y':
run = 0
def displayData():
print(q.get())
run = 0
q = Queue()
p = Process(target=beginControl , args=(q,))
waitForStart(q)
Je suis confus parce que le retour appel is_alive faux, même si p.start() est appelée quelques lignes avant.
Merci! Je suis toujours un peu flou sur les tuyaux, donc je vais lire dans ce sujet. J'essaie de faire fonctionner le processus dans une boucle contrôlée par l'entrée de l'utilisateur. Ce que je voudrais faire, c'est que le processus génère et imprime continuellement des données à l'écran pendant que l'utilisateur peut encore saisir des commandes. Finalement, je veux l'adapter à un code connecté à LabView, où le processus d'arrière-plan enregistrera des données provenant de capteurs, et j'ai besoin que l'utilisateur soit toujours capable de contrôler le programme via un frontal. – egemnay
@egemnay, Comme indiqué, ce dont vous avez besoin est un fil de discussion, pas un processus - https://docs.python.org/2/library/threading.html?highlight=threading#module-threading – droravr