Bonjour,
Je suis en train de tester le threading sur python, et je rencontre quelque difficultés. Mon test est simple:
Je voudrai qu'un thread fasse des insertions dans une base pendant que mon programme principal affiche ce qui a été introduit.
Voilà en gros le code que je teste (j'ai viré toute la partie bdd car ça fonctionne bien sur cette partie).
Voilà ce que ça donne en gros. Le prob est que quand le thread démarre, il ne rend pas la main tant que les insertions ne sont pas terminés. or je voudrai le faire tourner en parallèle du programme principal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #!/usr/bin/env python import sys import os import subprocess import re import signal import MySQLdb import threading import multiprocessing import time class Affiche2(threading.Thread): def __init__(self, nom = ''): threading.Thread.__init__(self) self.nom = nom self._stopevent = threading.Event( ) def run(self): ''' FAIS DES INSERTIONS EN BASE ''' def stop(self): self._stopevent.set( ) ''' main ''' ''' appelle la fonction de connexion ''' conn = connectDB() print "Daemon ready to work" c = Affiche2('Thread C') c.start() time.sleep(6.5) c.stop() while (1): ''' FAIS DES SELECT ET AFFICHE LE RESULTAT '''
Auriez-vous une piste à me filer ?
Partager