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 :

Gestion des Threads en fonction des CPUs.


Sujet :

Concurrence et multi-thread Java

  1. #21
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    et bien dans ce cas là, le code s'exécute dans le thread courant au lieu de lancer un nouveau thread.
    Donc c'est comme si l'on avait pas fait de Thread ?

  2. #22
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Exactement


  3. #23
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Exactement
    Parfait, c'est ce que je voulais
    Comme ça tous les calculs pour lesquels multi-threader fait perdre du temps (à cause de la complexité de construction des threads) peuvent être appelés de la même façon.

    Je fais des tests et je marque les résultats.

    Merci

  4. #24
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    oui, tu ne fais qu'appeler une méthode en appelant run. start(), par contre, est une méthode native qui va créer un nouveau thread et ce nouveau thread exécutera la méthode run()

  5. #25
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    suite et fin de mon choix d'architecture avec les Threads.
    J'ai finalement opté pour l'architecture suivante qui est aussi rapide que ce que j'avais marqué en première page, mais qui évite la redondance de code :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    class Dilatation
    {
    ...
    public Image Execution(ImageATraiter, ImageResultat, int nbCPU)
    	{
    	...
    	switch ( nbCPU )
    		{
    		case 1 : DilatationThread DT = new DilatationThread(ImageATraiter, ImageResultat, Toute l image) ;
    			DT.run() ;
    			DT = null ;
    			break ;
    		case 2 : DilatationThread DT1 = new DilatationThread(ImageATraiter, ImageResultat, Moitié inférieure de l image) ;
    			DT1.Start() ;
    			DilatationThread DT2 = new DilatationThread(ImageATraiter, ImageResultat, Moitié supérieure de l image) ;
    			DT2.Start() ;
    			try	{
    				DT1.join() ;
    				DT2.join() ;
    				}
    			catch (...) {...}
    			DT1 = null ;
    			DT2 = null ;
    			break ;
    		default : // Non géré...
    		}
    	...
    	}
     
     
     
    private DilatationThread extends Thread
    {
    ...
    public DilatationThread(ImageATraiter, ImageResultat, Bornes)
    	{
    	this....
    	}
     
    public void run()
    	{
    	// Mon traitement d'image en fonction des bornes.
    	}
    }
     
    }

    Ben ça marche super bien et c'est pratique à utiliser.

  6. #26
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    les assignation de null sont inutiles

  7. #27
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Je pensais que ça aidait un peu le ramasse-miettes

  8. #28
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Je pensais que ça aidait un peu le ramasse-miettes
    en effet ça peut, mais en l'occurence ce sont des variables internes, et dès qu'on sort du bloc dans lequel elles sont utilisées, les références sont perdues et le GC fera son boulot

    ça aide surtout lorsque ce sont des champs de classe. c'est presque jamais utile pour des variables locales


  9. #29
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Ok merci...
    Bon on dira alors que : c'est une bonne habitude qui ne coûte rien et peut aider

  10. #30
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    en fait si, ca coute: une affectation

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Gestion de l'état des widgets Tkinter par des Threads
    Par piokml dans le forum Général Python
    Réponses: 3
    Dernier message: 18/10/2012, 11h00
  2. Réponses: 2
    Dernier message: 17/02/2008, 20h21
  3. Questions relatives au fonctionement des threads
    Par pier* dans le forum Réseau
    Réponses: 7
    Dernier message: 24/05/2006, 22h11
  4. sélection des bd en fonction des utilisateurs (pg_hba.conf)
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 18/03/2004, 18h34

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