Ces dernières années, les processeurs ont gagné en performance non pas grâce à l'augmentation de leur fréquence de fonctionnement, mais par la multiplication du nombre de coeurs qui les composent. Nous sommes désormais dans la situation où un travail donné ne peut être effectué plus rapidement qu'en le parallélisant entre plusieurs threads. Malheureusement, les subtilités du multithreading sont souvent mal maîtrisées des développeurs, et le code qu'ils produisent est donc fondamentalement incorrect.
Dans cette session, nous étudierons 10 lois qui nous permettront de développer du code correctement multi-threadé.
1. The Law of the Sabotaged DoorbellOu comment gérer les InterruptedException, qui sont levées par plusieurs méthodes en Java 5.
2. The Law of the Distracted SpearfishermanLorsqu'on analyse un problème, il est indispensable de comprendre parfaitement ce que fait chaque thread. Si on néglige un Thread sans le comprendre, on peut facilement rater un problème.
3. The Law of the Overstocked HaberdasheryLes Threads utilisent des ressources, même s'ils ne sont pas actifs, ce qui impose une limite au nombre de threads gérables par notre système.
4. The Law of the Blind SpotLes champs peuvent être placés dans un cache local afin d'améliorer leur performance en lecture. Ainsi, lorsqu'un Thread modifie la valeur d'un champ, il est possible que les autres threads ne voient pas la valeur modifiée.
5. The Law of the Leaked MemoLe modèle mémoire Java permet au compilateur Hotspot de réarranger les instructions tant que le résultat final est toujours correct. Ce qui peut conduire à certains résultats qui semblent logiquement impossible.
6. The Law of the Corrupt PoliticianDes accès concurrents mal synchronisés peut corrompre même les objets les mieux conçus. Cela peut être très difficile à détecter et analyser. Dans cette loi, nous verrons comment éviter ces problèmes.
7. The Law of the MicromanagerAjouter de la synchronisation à notre code peut provoquer des problèmes d'inter-blocage, ou des threads s'attendent mutuellement afin d'exécuter du code critique.
8. The Law of Cretan DrivingLe modèle de threading Java est assez strict, mais pas forcément implémenté à l'identique par toutes les JVM. Un code apparemment correct peut tout de même se révéler défectueux.
9. The Law of Sudden RichesParfois, certains programmes ont des déficiences subtiles qui peuvent n'apparaître que de manière aléatoire dans le temps. En s'exécutant sur du hardware plus rapide, ces erreurs sont amplifiées et se produisent de manière plus régulière.
10. The Law of the Uneaten LutefiskIl est souvent possible de détecter des deadlocks en Java, mais malheureusement il est généralement impossible d'effectuer une reprise sur incident proprement. La seule option est d'analyser l'origine du problème et de redémarrer la JVM.
Rappel : La formation Java Spécialiste animée par le Dr. Heinz Kabutz cette même semaine concerne les développeurs ayant déjà au moins 2 à 3 ans d'expériences Java.
Nos conférences gratuites rencontrant un réel succès ceci est une pré-inscription. Vous recevrez ultérieurement une demande de confirmation par e-mail à laquelle il vous faudra répondre afin de valider votre inscription.
Heinz Kabutz, un Java Champion Sun, est le cerveau derrière la Newsletter "The Java Specialists". Il possède un doctorat en en science informatiques ainsi qu'une énorme expérience de programmation sur des applications Java conséquentes.
| QUI : | Heinz Kabutz |
| QUOI : | Les secrets de la concurrence Java |
| OU : | Paris - Zenika |
| QUAND : | jeudi 11 février, Ã 19:00 |
| PRIX : | GRATUIT ! |
| THEME : |