Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2729 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Files d'attente et scheduler

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Files d'attente et scheduler

n°875080
xterminhat​e
Si vis pacem, para bellum.
Posté le 17-10-2004 à 13:46:24  profilanswer
 

Bonjour,
 
Mon programme met en oeuvre deux files d'attente. Ces deux files offrent une fonction is_empty() (retourne vrai si vide) et une fonction bloquante dequeue() (retourne le premier élément stocké dans la file).
 
Je dispose d'un thread pour traiter ces deux files d'attentes.
 
Comment dois-je organiser ce thread pour optimiser l'utilisation du CPU. de manière à éviter une boucle d'attente bourin genre :

Code :
  1. while( q1.is_empty() && q2.is_empty() );


 
Merci d'avance pour vos conseils.


Message édité par xterminhate le 17-10-2004 à 13:47:53

---------------
Cordialement, Xterm-in'Hate...
mood
Publicité
Posté le 17-10-2004 à 13:46:24  profilanswer
 

n°875089
WhatDe
Posté le 17-10-2004 à 14:14:08  profilanswer
 

Au lieu de tester si elles sont vides essayes plutôt de lancer un message dans la fonction d'ajout que tu capteras non ? Enfin j'y connais rien du tout en threads donc bon ;)

n°875091
Taz
bisounours-codeur
Posté le 17-10-2004 à 14:16:33  profilanswer
 

utilise des mécanismes d'attente passive plutot d'active : condition, événement, mutex, etc

n°875096
xterminhat​e
Si vis pacem, para bellum.
Posté le 17-10-2004 à 14:35:46  profilanswer
 

Ses files d'attente héritent d'une classe de base Semaphore (appel bloquant de dequeue basé sur une attente passive).  
 
Je suis en train de créer une fonction qui fait la synthèse des sémaphore des files d'attente, de sorte à réaliser une attente passive sur une liste de files d'attente.


---------------
Cordialement, Xterm-in'Hate...
n°875099
Lam's
Profil: bas.
Posté le 17-10-2004 à 14:46:01  profilanswer
 

Alors n'utilise qu'un seul sémaphore pour toutes tes files, et fais une attente qui bloque sur le-dit sémaphore.

n°875108
xterminhat​e
Si vis pacem, para bellum.
Posté le 17-10-2004 à 15:02:42  profilanswer
 

J'ai plusieurs cas d'utilisation de mes files. Chaque file aura son sémaphore et je fais une fonction amie de la classe file pour réaliser l'attente passive sur plusieurs files.


---------------
Cordialement, Xterm-in'Hate...
n°875134
xterminhat​e
Si vis pacem, para bellum.
Posté le 17-10-2004 à 16:09:54  profilanswer
 

Lam's a écrit :

Alors n'utilise qu'un seul sémaphore pour toutes tes files, et fais une attente qui bloque sur le-dit sémaphore.


 
Finallement, j'opte pour un sémaphore unique utilé en parallèle de mes listes pour simplifier un peu. C'est un peu moins pratique à l'utilisation... enfin, on peut pas tout avoir.


---------------
Cordialement, Xterm-in'Hate...
n°875263
Lam's
Profil: bas.
Posté le 17-10-2004 à 19:11:08  profilanswer
 

Au passage, regarde si la bibliothèque de threads possède un truc genre "conditional variable" sur lequel tu peux faire des "wait" et des "signal" ou "notify". Ca me parait plus adapté à ton cas, même si les sémaphores fonctionnent très bien.
 
Et fais gaffe avec ta fonction "deque()". En C++, deque, ce sont les double-end-queues. Je pense que tu devrais plutôt l'appeller unqueue() ou nextElement()....

n°875385
xterminhat​e
Si vis pacem, para bellum.
Posté le 17-10-2004 à 21:09:53  profilanswer
 

J'utilise une file d'attente perso qui est thread safe.


---------------
Cordialement, Xterm-in'Hate...
n°875411
Lam's
Profil: bas.
Posté le 17-10-2004 à 21:31:39  profilanswer
 

Ca, je l'ai bien compris. Mais ta file d'attente perso, fais la utiliser une conditional variable plutôt qu'un sémaphore. Le code que Taz te conseille (sur le topic "Héritage privé" ) s'y plie très bien...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Files d'attente et scheduler

 

Sujets relatifs
attente de threads pour rendre la main + swingfenetre d'attente sous VBA
Interface d'attente pour un téléchargement facon Fileplanetprobleme client attente d'une connexion server
[eclipse][Jonas] Create and export all EJB JAR files to JonasThreads, pipes, attente et annulation
Page d'attente pour moteur de recherche [résolu][php]input files avec separation d'un nom de fichier[need help]
pb ou incomprehension de $_files !écran d'attente sur code long en vb excel
Plus de sujets relatifs à : Files d'attente et scheduler


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR