decarvk
Nombre de messages : 241 Age : 35 Localisation : en france Date d'inscription : 06/07/2008
| Sujet: comprenette en java 15/09/08, 09:55 pm | |
| voila âpres avoir suivit plusieurs tuto sur les thread je ne suis pas bien sur de tout saisir.
voila ceux que j'en est comprit: la class thread et l'interface runnable sont dans java.lang on peut exécute 1 thread a la fois. pour les synchroniser (bloquer les ressource utiliser par un thread)on utiliser synchronized et il faut redéfinir la méthode run lorsque l'on invoque un nouveau thread.
y a t'il des chose en plus a voir et y a t'il des erreur des ce que j'ai comprit? | |
|
Respawner
Nombre de messages : 1620 Age : 36 Date d'inscription : 20/04/2006
| Sujet: Re: comprenette en java 15/09/08, 10:36 pm | |
| Le mot clé synchronized permet de limiter l'accès à une ressource. En gros quand un thread accède à la ressource, un verrou est posé sur cette dernière et les autres threads doivent attendre que le verrou soit enlevé pour accéder à cette même ressource. Comme les variables static par exemple qui sont liées à la classe et non à l'objet donc communes aux threads.
La méthode run c'est le main du thread ce qu'il va faire.
Regarde aussi les problèmes de deadlocks c'est intéressant ça. | |
|
decarvk
Nombre de messages : 241 Age : 35 Localisation : en france Date d'inscription : 06/07/2008
| Sujet: Re: comprenette en java 15/09/08, 11:10 pm | |
| deadlock a pas vus mais je vais chercher ^^ j'en ai entendu parler au les serveur l2j | |
|
Respawner
Nombre de messages : 1620 Age : 36 Date d'inscription : 20/04/2006
| Sujet: Re: comprenette en java 15/09/08, 11:28 pm | |
| Exemple type de deadlock : le dînée des philosophes. Chaque philosophe est un thread, pour manger ils ont besoin de deux baguettes. La baguette gauche d'un philosophe correspond à la baguette droite d'un autre philosophe etc ... Si chaque philosophe a une baguette, il va attendre que son voisin pose sa baguette mais le voisin attend son voisin qui attend son voisin qui attend son voisin etc ... conclusion chaque thread en attend une autre, le programme se fige et ne fait plus rien. Ceci est un deadlock vous venez de perdre 1 million d'euros Pour les soucis de synchronized, on peut prendre comme exemple une variable qui sert de diviseur. Un thread prend cette variable si elle est supérieure à zéro (division par zéro impossible hein), divise un nombre avec et la décrémente. Lors d'un programme on ne peut prévoir comment les threads vont prendre la main donc on imagine un thread qui prend la main, la variable est égale à 1, l'exécution du thread est stoppée, l'autre thread prend la main plus longtemps, la variable est toujours égale à 1, le même thread divise son nombre par 1 et décrémente la variable qui est donc égale à 0. Le premier thread reprend la main mais la variable est à 0, il va tenter la division mais l'exception de division par zéro est levée et termine le programme. J'espère avoir été clair car c'est pas toujours simple à expliquer | |
|
decarvk
Nombre de messages : 241 Age : 35 Localisation : en france Date d'inscription : 06/07/2008
| Sujet: Re: comprenette en java 16/09/08, 01:53 pm | |
| hum donc un deadlock est une suite des thread qui attendent des un des autres une choses qu'il ne pourront pas obtenir ^^
pour les syncronized je comence a comprendre leur utiliter me reste a mettre c'est nouvelle conaissance en aplication pour voir jusqu'ou on peut aller ^^ | |
|
Respawner
Nombre de messages : 1620 Age : 36 Date d'inscription : 20/04/2006
| Sujet: Re: comprenette en java 16/09/08, 02:48 pm | |
| Bah disons que c'est surtout théorique car tu peux pas vraiment produire ceci. A par un deadlock évidemment d'ailleurs les deadlocks sont liés en général à la mauvaise ou à la non-utilisation de synchronized. Le problème est toujours l'accès à une ressource partagée mais comme on ne peut pas prévoir l'évolution du programme comment les threads vont "s'enchaîner" il est plutôt difficile de reproduire de telle situation en voulant le faire exprès ^^ | |
|
decarvk
Nombre de messages : 241 Age : 35 Localisation : en france Date d'inscription : 06/07/2008
| Sujet: Re: comprenette en java 16/09/08, 05:13 pm | |
| quand je parler de mettre en test mais nouvelle connaissance ya pas que sa, les jtextfiel, jcombobox, jcheckbox, enfin cela réuni aux gestion de thread je penser a faire un exercice proposer sur le topic ou j'ai mit mon premier programe, le tchat en aplet sa peut etre sympa.
enfin merci pour les petit éclaircissement | |
|
Contenu sponsorisé
| Sujet: Re: comprenette en java | |
| |
|