Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RESOLUT][Debutant] Aides sur les threads  (Lu 1960 fois)

0 Membres et 1 Invité sur ce sujet

Ariake

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
    • E-mail
[RESOLUT][Debutant] Aides sur les threads
« le: Juillet 22, 2014, 09:15:33 pm »
Bonjour,

J'ai quelques question sur les Threads !
j'utilise un thread pour le rendu graphique avec (comme la documentation) :
sf::Thread thread(&renderingThread, &window);
Dejà ma première question est, pourquoi donne t-on 2 arguments alors que 1 seul n'est utilisé ici :
void renderingThread(sf::RenderWindow* window)

Ensuite ma seconde question est : comment je peux lui donner (en argument) une variable ?

Merci d'avance à vous !  ;D (Je m'éclate avec la SFML  :P)
« Modifié: Juillet 23, 2014, 08:02:38 am par Ariake »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Debutant] Aides sur les threads
« Réponse #1 le: Juillet 22, 2014, 10:44:39 pm »
Citer
Dejà ma première question est, pourquoi donne t-on 2 arguments alors que 1 seul n'est utilisé ici
Le premier argument est la fonction à exécuter dans le thread. Le second est un paramètre à passer à ladite fonction. Enfin ça se voit non ? :P

Citer
Ensuite ma seconde question est : comment je peux lui donner (en argument) une variable ?
C'est ce que fait ce morceau de code non ? "window" est une variable. Ou alors je n'ai pas compris ta question.

A mon avis tu devrais éviter les threads tant que tu n'as pas une meilleure maîtrise du langage. Tu vas droit vers des problèmes qui vont te dépasser, d'autant plus que je suis quasiment certain que tu n'as pas vraiment besoin de threads.
Laurent Gomila - SFML developer

Ariake

  • Newbie
  • *
  • Messages: 22
    • Voir le profil
    • E-mail
Re : [Debutant] Aides sur les threads
« Réponse #2 le: Juillet 23, 2014, 06:50:51 am »
mmmh en réalité ce que j'aurai voulut dire était est-ce qu'on peux passer un 3eme argument, mais a ce que je vois non...
alors faut-il passer par un conteneur mettre le "window" (ma fenetre) et mes variables ? :p

ou si je veux être plus clair : faire des global est-il le seul moyen de partager des ressources entre les thread ? (oui je sais que je serait peut-être obligé d'utilisé des mutex pour évité quelque plantage..)

ce serait pour faire quelque chose comme ceci :
thread2:

while(true){
//..do somet stuff
check variable1
}

thread principal:

while(true){
do some other stuff
check and write on variable1
}

Citer
A mon avis tu devrais éviter les threads tant que tu n'as pas une meilleure maîtrise du langage. Tu vas droit vers des problèmes qui vont te dépasser, d'autant plus que je suis quasiment certain que tu n'as pas vraiment besoin de threads.

 :'( okey, je fini avec cette question et j'arrete avec les thread ! (même si il faudra bien commencer un jour)
« Modifié: Juillet 23, 2014, 07:08:39 am par Ariake »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Debutant] Aides sur les threads
« Réponse #3 le: Juillet 23, 2014, 07:32:35 am »
Si ton complateur supporte std::thread, utilise le. Il supporte un nombre illimité de paramètres, contrairement à SFML qui n'en supporte qu'un.

Et sinon oui, avec SFML il faudrait encapsuler tes paramètres dans une structure.
Laurent Gomila - SFML developer