• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
python contemporaneamente processi eseguire più

Python: eseguire più processi contemporaneamente
#1
Buongiorno a tutti,
Vi spiego la mia necessità con un esempio:

Il programma pippo.py controlla se si verifica una condizione, quando questa è soddisfatta e per il tempo in cui rimane soddisfatta, entra in un ciclo in cui controlla se c'è un input da parte dell'utente.
Fin qui, ok.
Ora vorrei che senza interrompere l'esecuzione del programma principale (principalmente il controllo del verificarsi della condizione) ci sia un processo che conti tot secondi dopo l'ultimo input, e, trascorso questo tempo, esegua una azione.
Avete presente il salvaschermo? un programma controlla l'input da tastiera, e conta tot secondi dall' ultimo tasto premuto. trascorso il tempo impostato, lancia il salvaschermo. Ma a ogni nuova pressione, fa ripartire il conto da zero.

Scritto così pare abbastanza banale, ma tradotto in codice mi sono un po' incartato. Volendo tenerli come processi separati, ma il primo si ferma fino a che il secondo non ha concluso.. Se richiamo una funzione o un loop di attesa, il programma non prosegue fino a che questo non viene eseguito.
Ho in mente una decina di modi diversi, ma quale è il più conveniente per farlo? Non vorrei dover usare il multiprocessing per questo (anche perchè gli esempio che ho sbirciato di corsa in rete mi paiono tutt'altro che cristallini)..
Risposta
#2
Sicuramente subprocess è il piu gettonato.
Ma tutto dipende da cosa devi fare, per codice limitato e controllato anche i threads vanno bene.
Se googli trovi parecchio

Mandi

Barbezuan
Risposta
#3
Era anche il mio primo pensiero, ma..
subprocess lancia un comando o uno script bash
posso lancoare "comando &" per evitare che venga attesa la fine del comando prima di proseguire, ma poniamo pure che il mio "comando" sia uno script che inizia un conteggio di attesa, e poi esegue una azione.
Ho necessità anche che se c'è un input dell' utente in python, il conteggio di attesa riparta dall' inizio (così come l'attesa del salvaschermo riparte, se muovi il mouse). Come posso poi comunicare con lo script "comando" lancoato prima per dirgli "hei, stai contando i secondi di attesa, ricomincia dall' inizio"..
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect