IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Concurrence et multi-thread Java Discussion :

Programmation concurrente - Partie 1 : Gestion des threads


Sujet :

Concurrence et multi-thread Java

  1. #1
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut Programmation concurrente - Partie 1 : Gestion des threads
    Bonjour à tous,

    Je vous propose de découvrir tous les outils de Java SE permettant la gestion de la concurrence. Le premier chapitre est orienté programmation parallèle en général et est consacré à la gestion des threads en Java :

    http://lmauzaize.developpez.com/tuto...stion-threads/


    Toutes les remarques et suggestions sont naturellement les bienvenues.

    Bonne lecture !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Bonjour, j'ai rapidement survolé le tutoriel (sur lequel je compte revenir lire plus en détail), mais les accents dans le code Java m'ont un peu choqué.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    Bonjour, j'ai rapidement survolé le tutoriel (sur lequel je compte revenir lire plus en détail), mais les accents dans le code Java m'ont un peu choqué.
    Effectivement c'est une remarque qui revient souvent mais je suis désolé l'essentiel de l'article a été rédigé avant l'application de la réforme de l'orthographe

    Plus sérieusement, je suis conscient que c'est un parti pris et voici mes raisons :
    • En rédigeant les exemples, je me suis rendu compte que certains termes pouvaient être confondus lorsque l'on omettait l'accent.
    • Cela créé une meilleure continuité dans le texte lorsque l'on fait référence à une variable plutôt que parler de la "task" ou mentionnée la tâche sans que l'on sache explicitement de quoi il s'agit.
    • Cela permet de rappeler que nous avons un langage qui supporte très bien l'Unicode et que l'on peut en profiter pleinement y compris dans les noms de variables.



    J'espère en tout cas que cela ne gênera pas la lecture de l'article.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Je me trompe peut-être mais il me semble que beaucoup de problèmes de concurrence doivent être abordés de façon différente si l'on utilise les ressources de Java 8, non ? Pensez-vous décrire cela dans la suite ?

  5. #5
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par ptyxs Voir le message
    Je me trompe peut-être mais il me semble que beaucoup de problèmes de concurrence doivent être abordés de façon différente si l'on utilise les ressources de Java 8, non ? Pensez-vous décrire cela dans la suite ?
    Les articles s'articulent essentiellement autour des packages java.util.concurrent.*. Donc il y a encore beaucoup de choses à venir.

    Les problèmes de concurrence peuvent s'aborder de multiples manières et ce sera un peu plus l'objectif du dernier chapitre. Néanmoins, à quelles "ressources" de Java 8 faîtes-vous allusion ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  6. #6
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par Logan Mauzaize Voir le message
    Les problèmes de concurrence peuvent s'aborder de multiples manières et ce sera un peu plus l'objectif du dernier chapitre. Néanmoins, à quelles "ressources" de Java 8 faîtes-vous allusion ?
    Bonjour, eh bien je suis loin d'être un connaisseur en la matière, mais il me semble qu'il existe de la documentation sur ces nouveaux aspects de Java 8 comme dans ces sources :

    - JVM Concurrecnys : Java 8 concurrency basics
    - http://docs.oracle.com/javase/8/docs.../changes8.html
    - Concurrency updates
    - ou ceci sur les Stream exécutés en parallèle :
    - http://docs.oracle.com/javase/tutori...ms_in_parallel
    - Java 8 parallel streams

  7. #7
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par ptyxs Voir le message
    Bonjour, eh bien je suis loin d'être un connaisseur en la matière, mais il me semble qu'il existe de la documentation sur ces nouveaux aspects de Java 8 comme dans ces sources :

    - JVM Concurrecnys : Java 8 concurrency basics
    - http://docs.oracle.com/javase/8/docs.../changes8.html
    - Concurrency updates
    - ou ceci sur les Stream exécutés en parallèle :
    - http://docs.oracle.com/javase/tutori...ms_in_parallel
    - Java 8 parallel streams
    Les Completion* n'adressent pas vraiment la problématique de la concurrence mais de l'asynchronisme. Si les tâches asynchrones rentrent en concurrence, cette nouvelle API n'apportera pas grand chose. En revanche, elle offre quelques facilités pour concevoir des algorithmes non bloquants.
    Je n'avais pas envisagé de l'intégrer dans cette série d'article car je pense que la programmation réactive et asynchrone sont des sujets à part entière. D'ailleurs Node.js a été conçu sur une architecture mono-thread. Néanmoins ce sont des sujets que j'aime bien et des éléments de conception intéressants pour se prémunir de la concurrence. Je ne rentre pas trop les détails ici car ce sera le sujet du dernier article de la série

    Concernant les Streams, il s'agit uniquement de programmation parallèle et les algorithmes employés pendant leur traitement ne devraient pas avoir d'effets de bord tels que les fonctions pures. Il ne devrait donc pas être question d'avoir à gérer de concurrence. L'utilisation du parallélisme n'est possible que si l'algorithme est capable de fonctionner en partitions (principe du Diviser pour régner).

    Ce sont des outils très intéressants qui apportent de la facilité et l'expressivité à des problématiques pour lesquels on a déjà des patterns connus. Ces nouveaux outils sont "simplement" des frameworks qui implémentent ces patterns. Ceux qui auront la chance d'utiliser Java 8 n'auront plus besoin de les ré implémenter ou d'importer des librairies qui le font.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    La suite est désormais disponible ici : http://www.developpez.net/forums/d15...nchronisation/.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Citation Envoyé par Logan Mauzaize Voir le message
    Effectivement c'est une remarque qui revient souvent mais je suis désolé l'essentiel de l'article a été rédigé avant l'application de la réforme de l'orthographe

    Plus sérieusement, je suis conscient que c'est un parti pris et voici mes raisons :
    • En rédigeant les exemples, je me suis rendu compte que certains termes pouvaient être confondus lorsque l'on omettait l'accent.
    • Cela créé une meilleure continuité dans le texte lorsque l'on fait référence à une variable plutôt que parler de la "task" ou mentionnée la tâche sans que l'on sache explicitement de quoi il s'agit.
    • Cela permet de rappeler que nous avons un langage qui supporte très bien l'Unicode et que l'on peut en profiter pleinement y compris dans les noms de variables.



    J'espère en tout cas que cela ne gênera pas la lecture de l'article.
    Je suis plutôt pour éviter les accents (ça complique l'écriture de code je trouve), mais si on choisi d'écrire en français, il faut y aller franchement parce que le "ForkJoinTâche"...

Discussions similaires

  1. Gestion des threads
    Par yanis97 dans le forum C++
    Réponses: 6
    Dernier message: 08/03/2006, 09h39
  2. GEstion des thread
    Par Julien Dufour dans le forum Access
    Réponses: 8
    Dernier message: 06/10/2004, 14h28
  3. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo