TUTORIAL SUR LES THREAD

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 14 août 2003 à 00:44
cs_lyees Messages postés 1 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 janvier 2011 - 16 janv. 2010 à 22:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15670-tutorial-sur-les-thread

cs_lyees Messages postés 1 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 janvier 2011
16 janv. 2010 à 22:01
je voudrais un tp de gestion de pont de 10tons qui contient des voiture 1 ton et des camions de 2tons
et que le pont n'a pas + de 10tons et aprés la sortie on donne la priorité pour le 1er arrivé

svp aide moi
zulot Messages postés 39 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 mai 2007
13 sept. 2006 à 12:13
Je suis d'accord avec darkpoulpo.
Je me suis dis cool un tuto enfin mais laisse tomber je vois presque pas le rapport avec les threads deja pour les trouver j'ai du faire un controle f et du coup je suis pas plus avancé dans mon probleme.
Le fait que tu sois le seul a avoir posté ne veut pas dire que ce soit bien loin de la.
En plus Dragon laisse tomber on parlait de francais tout a l'heure mais y a des messages que tu postes que je ne comprend absolument pas mais vraiment pas. On doit pas avoir le meme francais ou je dois avoir un probleme quoi que je ne suis pas sur.

Enfin tout ca pour dire que je cherche toujours un truc pour executer une barre de progression avec les Thread sur un traitement de fichier et de copier et que je trouve toujours pas.
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
11 mai 2005 à 22:07
lol en 2 ans je suis le seul qui a mis dequoi sur les thread. ouin surtout le JDK 1.5 existait même pas en 2003 lol

puisque tu es pas capable de lire au complet un texte, lit donc ça

la façon la plus simple de créer un thread, c'est d'implementer Runnabled (tu peut extend thread, sauf que java supporte un seul extend, donc si tu fais extend jlabel, pour déplacer un label, ben tu peux pas, puisque tu te ramasse avec 2 extends). Donc implement Runnabled. Ensuite tu fais ton constructeur. Puis tu dois faire une méthode run. le run ça sera le code qui s'exécutera en même en temps que le restant du code. Tu peut créer ta variable et quand tu voudra démarrarer le thread, tu devra lui faire un start();

tant et aussi longtemps que tu sort pas du run, tu vas bouclé (rajouter un sleep pour pas que ça aille trop vite). Moi, ce que je fais, je prend le temps en mili-seconde au début de la boucle, je fais 100% des calcul, puis je fait mon sleep - (le temps en mili-seconde + le temps en mili-seconde du début de la boucle) Comme ça, même si le code s'effectue plus lentement que prévu, il attendra tout simplement moins longtemps rendu au sleep et visuellement tu verras aucune différence

viens pas dire que je parle d'un projet la dedans, j'esplique comme ça fonctionne et c'est quoi les astuce quand on a beaucoup de code a faire pour avec un sleep parfait avec le thread

mais bon faut oublier ça, tu le liras pas
darkpoulpo Messages postés 76 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 29 novembre 2009
11 mai 2005 à 16:49
oué bein tu ferais mieux de virer ton code alors, et comme tu dis, un tutorial doit avoir une explication, mais ensuite le code qui correspond à l'explication, la tu parles de thread et 95% de ton code c'est de la publicité sur ton projet de shoot.
la prochaine fois que tu fais un tut, ne fais pas juste un copier collé, sort toi le doigt du cul et supprime le code en trop pour que ca reste clair et lisible du premier coup d'oeil, parceque je vois pas l'interet de mettre une explication si il faut chercher 15 ans dans le code les lignes qui correpondent au sujet dont tu parles.

prend pas la peine de repondre, je passe ma route maintenant, pas envie de perdre plus de temps
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
11 mai 2005 à 12:37
tu sort dequoi de vieux en maudit toi 2003 comme source. Un tutorial c'est jamais un exemple, c'est toujours le texte avant un exemple. c'est le bout écris que peux de monde lise qui explique comment ça fonctionne
darkpoulpo Messages postés 76 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 29 novembre 2009
11 mai 2005 à 11:11
moi je vote 0, c'ets pas un tut sur les threads, ya 3km de code que le thread execute, ce qui fait que pour trouver le code qui permet de creer un thread ou de l'utiliser est trop galere a trouver.
Kakashisan Messages postés 8 Date d'inscription samedi 29 mai 2004 Statut Membre Dernière intervention 2 juin 2004
3 juin 2004 à 00:05
Super sympa comme tut !
Vraiment bravo
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
22 août 2003 à 16:18
la raison que je massacre mon français, c'est que j'ai une main qui tape plus vite que l'autre, donc j'inverse souvent 2 lettres.

pour le reste, j'avou que j'ai pas un français parfait, mais je suis pas si pire que ça non plus
tr01char Messages postés 1 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 22 août 2003
22 août 2003 à 15:48
vous ètes formidablement intéressant, mais........
est ce que le massacre de l'orthographe est un complément logique du programmeur java ? ou le dyslexisme un appanage de la connaissance ? j'essaie de m'introduire (pas me faire mettre) à la programmation java et c'est le troisième forum où je trouve des articles hyper intéressants mais massacrés par un discours de cours d'école. Je ne veux pas être bégueule, mais il me semble que la rigueur d'un code source ne justifie pas le "lachez tout" du discours surtout quand celui-ci se veut formateur.
en attendant s'il le faut, je préfère votre litérature à bien des discours de litérateurs qui se la croient (ou se la jouent) donc merci à tous les deux et à tous les autres qui -eux aussi- font quelque chose et partagent le fruit de leurs réflexions.
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 août 2003 à 13:23
c'est sur que je susi pas aller parler jusqu'au daemon et comapgnie, masi c'était surtout un tutorial pour débutant, puisque beaucoup de monde comprenne rien à c'est quoi un thread, donc j'ai essayer de vulgariser le mieux possible. Et avoir mis trop de détail, on fini toujours par perdre ceux qui commence ou ils finissent pas de lire le texte, donc j'ai simplifier au maximum.

masi par contre merci, puisque pour ceux qui apprenne et veulenet en savoir un peu plus, ils peuvent lire ton commentaire qui est extrêment pertinent

donc merci
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
14 août 2003 à 00:44
C'est pas trop mal et je te met un 8/10 : je m'explique ! J'apprécie énormément ce que tu fais sur javafr.com Mr dragon mais je trouve que ton explication sur ce qu'est un thread est un peu vague et pas très clair (désolé je ne voulais pas être mal poli !lol). Je vais essayer de faire mieux ! (sinon j'aurais jamais écrit ça et comme cela tu pourras me critiquer à ton tour, cela ne pourra être que bénéfique !).
Tout d'abord les threads permettent de donner une puissance incroyable à votre programme ! Mais comment ??? Sans expliquer ce qu'est une thread pour le moment, je vous donne des exemples :
-lorsque vous désirez télécharger un fichier sur Internet, l'explorateur ouvre la fenêtre de téléchargement et vous pouvez télécharger votre fichier tout en continuant de naviguer sur Internet. Je continu, vous désirez télécharger un autre fichier pendant que l'autre se télécharge, l'explorateur ouvre une nouvelle fenêtre et commence le téléchargement du fichier.
-votre programme de messagerie télécharge vos nouveaux messages pendant que vous consultez vos anciens messages ou que vous expédier des messages
-vous programmer en Java et exécuter votre programme. La machine virtuelle exécute votre code mais également le rammasse-miette (garbage collector) s'éfforce de gérer votre mémoire à votre place.
Vous connaissez les systèmes d'exploitation multitâche qui vous permettent de faire du traitement de texte pendant que vous écoutez de la musique et que vous faites un peu de chat sur Internet. Le multitâche permet est la possibilité d'avoir plusieurs programmes qui travaillent en même temps. Le multithreading reprend cette idée mais à un niveau plus bas : chaque programme individuel peut effectuer plusieurs tâches en même temps. On appel chaque tâche effectuée ainsi une thread.
Oui mais c'est une histoire de processus vous me direz !!! NON la différence entre plusieurs processus et plusieurs threads est la suivante : un processus possède une copie unique de ses variables alors que les threads partagent les même données. De plus il est bien plus rapide de créer un thread que de créer un nouveau processus (avis aux amateurs de Linux) et la communication entre threads est bien plus rapide et 'libre' qu'entre thread. Vous l'aurez compris la gestion des threads est tout un art et cela peut devenir très vite complexe si on ne les gère pas correctement (cf la gestion déplorable des threads dans mon serveur proxy http + horaire -> mais vous êtes prévenu dans le source !).
En concret ça nous donne quoi ???
Imaginons que vous créer un programme dans lequel vous déplacer un sprite dans l'écran à l'aide d'une boucle incrémenter. Essayer de le fermer vous ne pourrez pas tant que la boucle n'est pas terminé ! (amateur de VB -> merci DoEvents)
Vous l'aurez compris il faut créer une thread pour la ball qui se gère comme elle le souhaite afin de laisser libre la programme principal.
Je ne vous ferez pas un cours complet sur ce qu'est une thread mais la facilité extrême de son utilisation avec Java ne peut que vous faire adopter son emploi.
Sinon sachez et je vous laisse le soin de vous documenter que outre le fait que l'on peut s'amuser à créer et à détruire (et mettre en sommeil cela va sans dire), il existe la possibilité de créer des thread Daemon qui se met au uniquement service des autres threads (gestion des threads), de créer des groupes de threads, d'affecter des priorités aux threads, qu'il existe des threads égoïste (méchant !), des fonctions de communication afin de synchroniser vos threads, la possibilité de poser des verrous sur les objets afin qu'une thread concurrente ne puisse toucher à cet objet en même temps et que ... bon d'accord il reste encore des concepts avancés mais je vais m'arrêter là car si vous lisez ces dernières lignes c'est que vous allez tout faire pour maitriser les threads et ainsi réaliser des programmes mieux gérer.
J'espère avoir expliquer les choses un peu près clairement et encore désolé dragon pour ce petit commentaire et bonne continuation à toi ! Ton jeu de shooting est bien !!!
Rejoignez-nous