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 :

Définition de "Thread safe"


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Par défaut Définition de "Thread safe"
    Bonjour à tous,

    J'ai trouvé la définition ci dessous pour une méthode thread safe.

    Le terme thread-safe signifie qu'une fonction peut être implémentée de telle sorte qu'elle puisse être exécutée par plusieurs threads s'exécutant en même temps.
    Est ce que quelqu'un peut me l'expliquer concrètement, pcq je ne suis pas sur de la comprends très bien.
    Merci à vous.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    Pour bien comprendre il faut comprendre ce qu'est un Thread. En fait, dans un programme Java, tu as la possibilité de créer des Threads, qui sont en fait des "environnements d'execution parallèle", donc par exemple tu peux lancer la méthode A.a() et la méthode B.b() "en même temps" via ce mécanisme, et donc une méthode thread safe, est une méthode qui peut être utiliser par différents thread, sans causer de problème d'interférence, ou de collision de mémoire.

    Il y a certaines classes Java qui ne sont pas thread safe. Une explication en anglais est disponible, si tu comprends bien l'anglais, qui sera beaucoup plus complète, précise et correcte que la mienne.

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Par défaut
    Si je comprends bien toutes les methodes avec un synchronized devant sont thread safe ?

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Le problème c'est que synchronized rend en effet la méthode thread safe, mais avec la contrepartie que tu perds évidemment l'avantage de départ des threads ( tes threads ne s'executent plus en même temps, mais attendent leur tour.. )

    Une vraie méthode threadsafe n'est pas synchronized, mais utilise des objets et des techniques qui permettent son appel par différent threads en même temps.

    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Par défaut
    ok merci pour les reponses rapides

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    synchronized n'est qu'un des outils permettant de rendre une méthode thread-safe, mais il ne peut pas le garantir à lui seul !

    a++

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut Autre Thread
    Bonjour, j'ai posté un message sur le forum pour ralentir le Thread KeyListener.
    Je veus faire ça pour garder de la resource de calcul, et ne pas m'encombrer avec une méthode pour effacer le fichier output des saisies du clavier.
    Est qu'il y à une tel méthode,svp.

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Bonjour à tous,

    Une méthode est appelée thread-safe lorsqu'elle peut fonctionner correctement et sans risque lorsqu'elle est exécutée par plusieurs processus parallèles simultanément.

    Le mot clé synchronized permet de rendre une méthode ou une classe ou un objet thread-safe, mais il y a déjà une méthode dans Collections par exemple qui permet de rendre une liste, ou un ensemble thread-safe.

    Il y a des classes thread-safe par défaut comme Vector, Hashtable en Java mais c'est une perte énorme de temps (plus lent). Ils sont même hautement déconseillés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RCP] Treeviewer non thread-safe ?
    Par Guildux dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 09/01/2007, 13h00
  2. [MFC] CMAP non thread safe ?
    Par fmarot dans le forum MFC
    Réponses: 5
    Dernier message: 04/10/2005, 13h21

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