1. Supports de cours
  2. Programmation concurrente - Maîtrisez le traitement de vos données en Java

Programmation concurrente Maîtrisez le traitement de vos données en Java

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Aujourd'hui incontournable pour exploiter au mieux les données disponibles, la programmation concurrente mêle deux problématiques interdépendantes : l'accès aux données et l'exploitation des ressources pour les traiter. L'objectif de ce livre est de montrer à un développeur l'éventail des possibilités utilisables pour maîtriser le traitement de l'information en Java.

Dans ce livre, l'auteur commence par présenter ce qu'est la programmation concurrente pour montrer son utilité et son importance : contexte général, historique, types de programmation concurrente, limites actuelles...

Le chapitre qui suit traite de l'accès aux ressources. L'auteur y détaille les différents types de ressources disponibles, les différentes notions à considérer dans le cadre de la programmation concurrente (partage de la ressource, granularité, intégrité de l'information...), ainsi que les différents types d'accès aux données (accès exclusifs, accès concurrentiels, sérialisation des accès...). Des stratégies d'accès à l'information sont également présentées à l'aide d'exemples en Java.

La suite du livre se concentre plus particulièrement sur le traitement de l'information, le cœur de la programmation concurrente. L'API de la programmation concurrente en Java est étudiée : écriture de threads, précautions à prendre, verrous à mettre en place... Les différentes évolutions de l'API Java sont également détaillées, notamment le package concurrent et les collections. D'autres aspects connexes sont ensuite présentés tels que la programmation native à l'aide de la couche logicielle JNI (Java Native Interface), un exemple de MapReduce pour la programmation Big Data, la programmation GPU...

Pour finir, l'auteur décrit la programmation concurrente sous deux environnements de développement : l'environnement Java EE, notamment pour les accès concurrents à la base de données et les EJB, et l'environnement Android.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.

Les chapitres du livre :
Avant-propos – Programmation concurrente – Accès aux ressources – Programmation – Divers

Table des matières

  • Programmation concurrente
    • 1. Prérequis
    • 2. Contexte général de la programmation concurrente
      • 2.1 Besoins initiaux
      • 2.2 Limites actuelles et réponses apportées
    • 3. Les différents types de programmation concurrente
      • 3.1 Historique
      • 3.2 État de l’art
    • 4. Articulation de la programmation concurrente
      • 4.1 Accès aux ressources, accès concurrents
      • 4.2 Programmation parallèle
  • Accès aux ressources
    • 1. Les ressources
      • 1.1 Les différents types de ressources
      • 1.2 Comment sont-elles manipulées ?
      • 1.3 Les accès
      • 1.4 Les niveaux où sont effectués les accès concurrents
    • 2. Aspect concurrentiel
      • 2.1 Nécessité
      • 2.2 Partage de la ressource
      • 2.3 Granularité
      • 2.4 Choix du niveau de granularité
      • 2.5 Intégrité de l’information
    • 3. Les différents types d’accès aux données
      • 3.1 Exclusifs
      • 3.2 Concurrentiels simultanés
      • 3.3 Distribution des calculs
      • 3.4 Cas des fichiers mappés en mémoire
      • 3.5 La sérialisation des accès (mise en queue)
      • 3.6 Session : cas d’une connexion réseau
      • 3.7 Atomicité, copie
      • 3.8 Sémaphores
    • 4. Optimisation de l’accès à l’information
      • 4.1 Localisation de l’information et du traitement, cache
    • 5. Transmission et traitement de l’information
      • 5.1 Les différents types de communications
        • 5.1.1 Point à point (Unicast)
        • 5.1.2 Diffusion (Multicast)
      • 5.2 Le choix du protocole
      • 5.3 Consommation, traitement, fusion et production
      • 5.4 Ratios Consommation / Production / Traitement
    • 6. Design patterns
  • Programmation
    • 1. Threads
      • 1.1 Historique
      • 1.2 Cycle de vie
    • 2. Présentation de l’API C
      • 2.1 Pthread
      • 2.2 OpenMP
    • 3. Présentation de l’API Java
      • 3.1 Programmation utilisant les threads
      • 3.2 Cycle de vie
      • 3.3 Précautions
      • 3.4 Mise en pause d’un thread et blocs verrouillés
      • 3.5 API des threads
        • 3.5.1 la gestion des threads
      • 3.6 L’API Java vis-à-vis de la programmation concurrente
        • 3.6.1 ThreadLocal
        • 3.6.2 Le package java.util.concurrent
      • 3.7 Évolutions de l’API Java
        • 3.7.1 Les collections
        • 3.7.2 Les interfaces graphiques
        • 3.7.3 Pool de threads
      • 3.8 Communication entre tâches
    • 4. La parallélisation en Java 8
    • 5. Environnements : ressources disponibles
    • 6. Cluster
    • 7. BigData
      • 7.1 Émergence du BigData
      • 7.2 Exemple de Map & Reduce
      • 7.3 Conclusion
    • 8. GPU (Graphic Processing Unit)
      • 8.1 Introduction
      • 8.2 Environnement
      • 8.3 Exemples
      • 8.4 Conclusion
    • 9. SIMD, SISD, SPMD...
  • Programmation en environnement spécifique
    • 1. Programmation concurrente en Java EE
      • 1.1 L’environnement Java EE
    • 2. Le cas Android
    • 3. JNI
      • 3.1 Présentation
      • 3.2 Accès aux threads natifs
    • Index

Auteur

Laurent JOYEUX En savoir plus

Laurent JOYEUX dispose d'une formation en électronique et est titulaire d'un doctorat en informatique avec une spécialité en traitement d'images. Les thématiques de recherche qu'il a étudiées (restauration de séquences d'images et restitution 3D de macromolécules observées par microscope électronique), l'ont naturellement confronté à l'utilisation de la programmation concurrente avec des implémentations sur machines multiprocesseurs ou sur machines dédiées. Plusieurs missions dans le domaine de l'innovation technologique, du développement de prototypes, du développement full-stack de sites e-commerce et de l'intégration logicielle dans des projets européens l'ont également amené à travailler en environnement Java. Ce livre est l'occasion pour lui de restituer au lecteur sa vision et son expérience de la programmation concurrente en Java.

Caractéristiques

  • Niveau Expert
  • Nombre de pages 322 pages
  • Parution novembre 2017
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-01108-5
    • EAN : 9782409011085
    • Ref. ENI : EPPROCJAV
  • Niveau Expert
  • Parution novembre 2017
    • HTML
    • ISBN : 978-2-409-01114-6
    • EAN : 9782409011146
    • Ref. ENI : LNEPPROCJAV

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (10,9 Ko)