|
|
|
|
Bon je pense que ça ne vaut pas le coup de relancer un nouveau sujet pour ça.
#!/usr/bin/python
import threading,time,os
def launch_main():
os.system("./main")
def launch_dwl():
os.system("./dwl_raw")
b=threading.Thread(target=launch_dwl)
b.start
a=threading.Thread(target=launch_main)
a.start
time.sleep(20)
print a
print b
Avec les print a et print b j'ai: <Thread(Thread-2, initial)> <Thread(Thread-1, initial)> C'est la première fois que j'explore les threads et je ne connais pas le fonctionnement.... Je sais pas trop où est le soucis.... Re merci d'avance :-)
|
Le problème, c'est que lancer 2 scripts en même temps, ça veut dire deux process, pas deux threads.
|
Ah ok je comprends mieux.
|
Je viens d'essayer os.fork() après avoir glané quelques renseignements sur le fonctionnement général d'un fork (en C mais bon on dirait que c'est le même fonctionnement).
a=os.fork() if a==0: # Processus enfant si j'ai bien compris launch_dwl() else: #Ce que je voudrait executer en même temps, mais dans le processus parent Ô bonheur, ça marche, apparemment les instructions du processus parent et child se sont executés en même temps :-) Mais alors du coup.... Parce que j'aimerais lancer deux fork() en même temps.... Il faudrait que je connaisse le pid des processus enfant pour les arrêter régulièrement et les relancer. J'ai essayé de mettre c=os.getpid() pour le bloc if des instructions du processus enfant mais je n'ai pas réussi à trouver son processus.... b=os.fork()
if b==0:
launch_dwl()
c=os.getpid()
else:
a=open("./les_pids","w")
d=os.getpid()
a.write(c+"\n"+d)
a.close()
Par exemple là dans le fichier "les_pids" je n'ai pas les numeros de processus. Peut être que ce n'est pas os.getpid() Merci en tout cas :-) |
J'ai compris.
|
Petit retour après coup.
|