Programmation concurrente

Se connecter pour s'inscrire

Votre progression

Continuez pour débloquer la suite !
0 / 0 étapes complétées 0
%

Syllabus

  1. Description

  2. Objectifs

  3. Validations de compétences

  4. Public cible

    Aucun public cible spécifié pour ce module.

  5. Besoins techniques

  6. Prérequis

    • Aucun prérequis
  7. Niveau

  8. Historique du module

    Aucune action enregistrée
  • Programmation concurrente

    1. Introduction à la programmation Concurrente

      1. Définitions et Concepts de Base

        1. Concurrence vs Parallélisme : Comprendre la différence entre exécuter plusieurs tâches simultanément (concurrence) et exécuter plusieurs tâches en même temps sur des processeurs multiples (parallélisme).
        2. Importance de la Concurrence : Amélioration des performances, meilleure utilisation des ressources système, réactivité des applications.
      2. Problèmes Courants en Concurrence

        1. Conditions de Course (Race Conditions)
        2. Interblocages (Deadlocks)
        3. Famine (Starvation)
        4. Incohérence des Données
    2. Les Threads en Java

      1. Concept de Thread

        1. Définition et Rôle des Threads
        2. Lifecycle d’un Thread : États (New, Runnable, Blocked, Waiting, Timed Waiting, Terminated)
      2. Création et Gestion des Threads

        1. Étendre la Classe Thread
          • Exemple pratique : Création d’un thread en héritant de Thread
        2. Implémenter l’Interface Runnable
          • Exemple pratique : Création d’un thread en implémentant Runnable
        3. Utiliser l’Interface Callable et Future
          • Différences entre Runnable et Callable
          • Exemple pratique : Utilisation de Callable pour récupérer des résultats des threads
        4. Méthodes Importantes de la Classe Thread
          • start(), run(), sleep(), join(), interrupt()
    3. Synchronisation et Sécurité des Threads

      1. Problèmes de Synchronisation

        • Incohérence des Données Partagées
        • Conditions de Course
      2. Mécanismes de Synchronisation en Java

        • Le Mot-clé synchronized
        • Synchronisation des méthodes
        • Synchronisation des blocs de code
        • Exemple pratique : Synchronisation d’un compteur partagé
      3. Objets Moniteurs

        • Utilisation des moniteurs pour la synchronisation
      4. Verrous Explicites avec Lock Interface

        1. Introduction à ReentrantLock
        2. Exemple pratique : Utilisation de ReentrantLock pour une synchronisation fine
      5. Éviter les Problèmes de Concurrence

        1. Stratégies pour Prévenir les Deadlocks

          1. Ordonnancement des ressources
          2. Utilisation de timeout
          3. Techniques pour Minimiser la Starvation
            1. Priorités des threads
            2. Utilisation équitable des ressources
    4. API de Concurrence Avancée
    5. Exercices Pratiques
  • Exercices, examens et projets

    Exercice

    Exercice Java

    Écrire et tester une classe Java.

    Obligatoire Consulter
    Examen

    Examen Java

    Évaluer POO, collections et exceptions.

    Obligatoire Consulter
    Projet

    Projet Java

    Construire une application Java maintenable.

    Livrables :

    • Code
    • Tests
    Obligatoire Consulter