[Thread] Passage d'une Queue entre le thread principal et un autre thread sans variable global
Salut à tous,
Sujet maintes fois traité mais je n'arrive pas à trouver mon bonheur :/ ... Je souhaiterais utiliser une variable (ici une Queue) dans mon thread secondaire (que j'utilise pour me connecter à un serveur) et mon thread principal (que j'utilise pour asservir une arduino)
(ça sera plus clair avec le code :p )
Code:
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 36 37 38 39 40 41 42 43 44
| # -*- coding: utf8 -*-
import serial
import time
import connection
import EnvoiOrdre
import server
from threading import Thread
import sys
import random
from Queue import Queue
queue_serveur=Queue(maxsize=10)
class thread_serveur(Thread):
"""Thread chargé simplement d'afficher une lettre dans la console."""
def __init__(self, httpd):
Thread.__init__(self)
self.httpd=httpd
def run(self):
"""Code à exécuter pendant l'exécution du thread."""
print("ok")
queue_serveur.put("data reçu du serveur")
self.httpd.serve_forever()
if __name__ == "__main__":
#arduino=connection.usb()
httpd=server.init_serveur()
print("test")
t_serveur=thread_serveur(httpd)
t_serveur.daemon=True
t_serveur.start()
print("la vie suit son cours")
msg=queue_serveur.get()
print(msg)
#t_serveur.join()
while(1):
time.sleep(1) |
Actuellement, j'utilise une variable globale mais je trouve ça moche..
merci d'avance pour votre aide !