NodeboxGL, threading et partage de données

Le
Julien
Bonjour,

Soit le code basique suivant :

# -*- coding: UTF-8 -*-

import psutil
from nodebox.graphics import *
import threading

VAL = 10.0
txt = Text(str(VAL), fontname="Droid Sans", fill = color(0.25))


class CpuThread(threading.Thread):
def run (self):
global VAL
while 1:
print 'processor thread ' + str(VAL) + ' in percent'
VAL = psutil.cpu_percent(interval=1)

def draw(canvas):

canvas.clear()
background(0)

rect(50, 50, 40, ((VAL*500)/100))
stroke(1)
strokewidth(0)
fill(1)

text(txt, 55, ((VAL*500)/100) + 80)
txt.text = str(VAL)

if __name__ == "__main__":
canvas = Canvas(width=800, height=600, name="App GL",
resizable=False)
CpuThread().start()
canvas.run(draw)

Mes questions concernent le multithreading.

Ici je lance un thread charg de rcuprer l'occupation processeur en
parallle du programme principal (une fentre graphique opengl). Je
souhaite donc rcuprer dans ma fentre principale la valeur renvoy=
e
par le thread secondaire.

1 - Ici j'ai fait cela avec une variable globale, a ne me parat pas
trs propre ? Me trompe-je ?

2 - J'ai lu brivement que l'on pouvait utiliser un mcanisme de pile
(queue) dans le contexte multithread ? Est-ce la mthode recommande
pour traiter ce type de cas ? Ou est-ce sortir un bazooka pour pas
grand chose ?

3 - Le thread est lanc en parallle du programme principal, comment
contrler ce thread autonome et pouvoir le tuer quand on quitte la
fentre graphique principale du programme. J'ai lu des choses propos
d'un mode dmon utiliser avant le lancement du thread, est-ce la
mthode approprie ?

Je vous remercie pour les rponses, suggestions ou conseils que vous
pourrez m'apporter.

J.H
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Julien
Le #24000541
J'ai trouvé les réponses à mes questions en parcourant l'excellent
site : http://python.jpvweb.com/mesrecettespython/doku.php?id=thread_tabl eaublanc

La queue ne correpondait pas à ce que je souhaitais faire. Le tableau
blanc est adapté. Les réponses à mes autres questions découlent des
informations que j'ai pu lire.

J.H
Publicité
Poster une réponse
Anonyme