Icones réseaux sociaux de Zenika Contacter Zenika Accéder au facebook Zenika Accéder au blog Zenika Accéder au twitter ZenikaIT
chargement...

Articles

Les secrets de la concurrence Java

Description

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 Doorbell

Ou comment gérer les InterruptedException, qui sont levées par plusieurs méthodes en Java 5.

2. The Law of the Distracted Spearfisherman

Lorsqu'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 Haberdashery

Les 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 Spot

Les 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 Memo

Le 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 Politician

Des 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 Micromanager

Ajouter 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 Driving

Le 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 Riches

Parfois, 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 Lutefisk

Il 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.

Pré-inscription

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.

Speaker


Heinz Kabutz 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.

Infos pratiques

QUI : Heinz Kabutz
QUOI : Les secrets de la concurrence Java
OU : Paris - Zenika
QUAND : jeudi 11 février, à 19:00
PRIX : GRATUIT !
THEME :

Inscription Fermée